




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章JavaServlet技术 JavaServlet简介JavaServlet的运行环境及配置JavaServlet编程 JavaServlet简介 JavaServlet是运行于Web服务器端的应用程序 可以通过浏览器调用 其作用类似于CGI程序 但比CGI程序的效率更高 JavaServlet技术是Sun公司提出的针对Java企业级应用编程的一部分 它为应用Web的企业使用Java技术提供了一种核心方法 极大地扩展了Web服务器的功能 就服务器端技术而言 JavaServlet JSP技术是目前最先进和最完善的技术之一 由于它能够以线程的方式来处理用户的请求 所以使得成百上千的用户能够同时访问JavaServlet而不影响服务器的性能 JavaServlet最强大的地方是与HTTP协议的紧密结合 在这方面 JavaServlet是做的最好的 因此 在开发基于HTTP协议的网络应用和电子商务应用方面 JavaServlet具有得天独厚的优势 3 第8章Servlet Servlet是SUN公司推出的一种在服务器端运行的JAVA技术 它是在JSP以前就出现的在服务器端运行的JAVA技术的一种 与JSP有着密不可分的关系 而且JSP是经过JSP容器编译为Servlet后 再由浏览器解释执行的 所以不了解Servlet就很难对JSP有一个正确的认识 4 8 1Servlet概述 Servlet是服务器端的JAVA小程序 用于响应客户机的请求 在默认情况下 Servlet采用一种无状态的请求 响应处理方式 Servlet一般会把处理的结果以HTML的形式返回 在客户端形成动态网页 ServletAPI中提供了大量方法 供编写Servlet时调用 关于ServletAPI的内容 可以参照SUNJ2EE的帮助文档 5 8 1 1Servlet的基本概念 所谓Servlet 在最通用的情况下是一种JAVA类 它实现Servlet接口且接受请求和生成响应 请求可以来自JAVA类 Web页面客户端或其他Servlet Servlet是用Java编写的服务器端程序 它与协议和平台无关 Servlet运行于Java EnabledWebServer中 JavaServlet可以动态地扩展服务器的能力 并采用请求 响应模式提供Web服务 第8章JavaServlet基础 JavaServlet技术就是在服务器端创建响应用户请求对象的技术 被创建的对象习惯上称为一个Servlet对象 Servlet的优点 功能强大 在Servlet中 许多使用传统CGI程序很难完成的任务都可以轻松地完成 Servlet还能够在各个程序之间共享数据 使得数据库连接池之类的功能很容易实现 执行效率高 在传统的CGI中 每个请求都要启动一个新的进程 如果CGI程序本身的执行时间较短 启动进程所需要的开销很可能反而超过实际执行时间 而在Servlet中 每个请求由一个次要的Java线程处理 而不需要反复启动 这也叫 一次加载多次使用 在传统CGI中 如果有N个并发的进程对同一CGI程序发出请求 则该CGI程序的代码在内存中重复装载了N次 而对于Servlet 处理请求的是N个线程 只需加载一次Servlet类代码 从而可以提高处理速度 开发难度低 相对于传统的CGI Servlet有很多例程 可以完成许多功能 如网络缓存 Cookies 还有会话跟踪 自动读取Http表头等功能 开发者在这些功能完备的例程的基础上 轻松地开发功能复杂的Web应用程序 可移植性好 Servlet是使用Java编写的 所以很好地继承了Java的跨平台性特点 由于ServletAPI的规范很完备 所以几乎所有的主流Web服务器 如Apache MicrosoftIIS或者WebStar等 都直接或者通过插件支持Servlet 性能更强 Servlet比CGI有着更多的选择 比如缓冲以前的计算结果 保持数据库连接的活动等等 Servlet的用途 一个简单的Servlet可以处理使用HTMLFORM在HTTPS上使用POST传递的数据 复杂的Servlet 可能还会使用RMI技术 可以用于实现定单输入和处理系统 生产及库存数据库以及一个可能的联机支付系统 一个Servlet能并发处理多个请求 他们可以使用在诸如在线会议这样的同步请求支持系统 Servlet可以转送请求给其他的服务器和Servlet 按照任务类型或组织范围 可以允许被用来在几个服务器中划分逻辑上的服务器 Servlet编写者们可以定义彼此之间共同工作的激活代理 每个代理者是一个Servlet 而且代理者能够在它们之间传送数据 Servlet与JSP的区别 Servlet是一种在服务器端运行的Java程序 从某种意义上说 它就是服务器端的Applet 所以Servlet可以像Applet一样作为一种插件 Plugin 嵌入到WebServer中去 提供诸如HTTP FTP等协议服务甚至用户自已定制的协议服务 而JSP是继Servlet后Sun公司推出的新技术 它是以Servlet为基础开发的 Servlet与JSP相比有以下几点区别 编程方式不同Servlet必须在编译以后才能执行运行速度不同 1 Servlet概述 P116 Servlet是JavaServer体系结构的一部分Servlet是由服务器端调用和执行的Java类Servlet可以被认为是服务器端的AppletServlet与JSP有着直接的血缘关系 Servlet是小型的 与平台无关的Java类 它被编译成结构中立的字节码 由基于Java的Web服务器动态加载和执行 Servlet通过容器实现的request和response实例与网页客户交互 Servlet特点 P116 2 Servlet基础 Servlet工作原理Servlet基本结构Servlet主要方法Servlet生命周期 Servlet工作原理 客户端发送请求到服务器服务器将请求信息发送至servletservlet生成响应内容并传给服务器服务器将响应返回给客户端 Servlet的基本结构 P119 与类相同需要继承HttpServlet需要覆盖实现doGet或doPost方法以上方法有两个参数HttpServletRequest对象和HttpServletResponse对象前者包含了用户的请求信息后者包含了对用户的响应信息在方法中实现对用户信息的处理和对用户的响应举例 Test java 6 2Servlet与JSP之间的关系JSP主要关注于HTML 或者XML 与Java代码的结合 以及加入其中的JSP标记 如果一个支持JSP的服务器遇到一个JSP页面 它首先查看该页面是否被编译成为一个Servlet 由此可见 JSP被编译成Servlet 即被转变为纯Java 然后被装载入服务器执行 JSP引擎基本上就是架构在Servlet引擎之上 以Servlet的形式存在的 利用Servlet引擎或者ContentType对映 把JSP文件转译成Servlet的源文件 调用Java编译器 编译成Java执行码 以Servlet方式加以运行 由于上述原因 第一次JSP执行需要花较长的时间 而后JSP执行时 直接运行Java的执行码 从而大大提高的JSP的执行速度 这正是JSP的优点之一 6 3Servlet应用范围及其缺陷从网络三层结构的角度看 一个网络项目最少分三层 数据层 应用层和表示层 Servlet用来写应用层是很强大的 但是对于写表示层就很不方便 JSP则主要是为了方便写表示层而设计的 当然也可以写应用层 写惯了ASP PHP CGI的朋友 经常会不自觉地把表示层和应用层混在一起 比如把数据库处理信息放到JSP中 其实 它应该放在应用层中 JSP中应该仅仅存放与表示层有关的部分 也就是说 只放输出HTML网页的部分 而所有的数据计算 数据分析 数据库连接处理 统统是属于应用层 应该放在JavaBeans中 通过JSP调用JavaBeans 实现两层的整合 综上所述 Servlet是一个不完善的产品 写应用层很好 写表示层就逊色许多了 并且两层混杂 6 4Servlet的生命周期Servlet的生命周期始于将它装入Web服务器运行时 在终止或重新装入Servlet时结束 是当服务器装载运行servlets 接收来自客户端的多个请求并且返回数据给客户端 然后再删除移开servlets 初始化时期Servlet的执行时期Servlet结束时期 Servlet的生命周期 Servlet的生命周期定义了一个Servlet如何被加载 初始化 以及它怎样接收请求 响应请求 提供服务 Servlet的生命周期如图 Servlet的初始化init方法被调用于初始化JSP Servlet 其格式为 publicvoidinit ServletConfigconfig throwsServletException super init 在初始化过程中 Servlet应当准备好它要安排的一些资源 以便这个Servlet能够接收请求 做到这些可以不用考虑多线程 因为在Servlet初始化时只能是单进程的 一旦初始化方法完成 Servlet就能接收客户端的请求 Servlet的执行Service方法可以用于实现事务逻辑 是处理请求的地方 在服务器装载初始化Servlet后 Servlet就能够处理客户端的请求 可以用service方法来实现 每个客户端请求有它自己service方法 这些方法接收客户端请求 并且发回相应的响应 Servlet能同时运行多个service 这样 service方法可以按一个thread safe样式编写 如service方法更新Servlet对象中的一个字段field 这个字段是可以同时存取的 假如某个服务器不能同时并发运行service方法 也可以用SingleThreadModel接口 这个接口保证不会有两个以上的线程 threads 并发运行 在Servlet执行期间其最多的应用是处理客户端的请求并产生一个网页 Servlet的结束当服务器卸载一个Servlet 它将调用Servlet的destroy方法 这个destroy方法是与初始化方法相反 同时从内存中释放Servlet Destroy的格式为 publicvoiddestroy 用户调用destroy实际上不会卸载Servlet 只有Servlet引擎才可以实现此功能 Servlet JSP配置 要运行Servlet 则需要JSP Servletcontainer 可以使用Tomcat5 0来实现 在环境变量CLASSPATH中添加C Tomcat5 0 common lib servlet api jar 1 5JSP的作用 示例HelloJSP jspservlet是含有HTML的Java程序 JSP是含有Java代码的HTML页面 JSP是servlet的另一种形式 JSP页面会翻译成servlet servlet会被编译 并在web服务器中运行 选择servlet还是JSPservlet 面向处理的任务 执行复杂操作 JSP 面向表示的任务 实际开发中通常需要将二者结合起来使用 Servlet JSP配置 Servlet必须使用C Tomcat webapps ROOT WEB INF这个目录下面的web xml文件进行注册 打开这个web xml文件 使用Hello java文件 在里面加入 servlet servlet name Hello servlet name servlet class Hello servlet class servlet 表示指定包含的servlet类 servlet mapping servlet name Hello servlet name url pattern servlet Hello url pattern servlet mapping 指定Hello应当映射到哪一种URL模式 存放servlet的目录 Servlet的方法 Servlet一般从Javax包的HttpServlet类扩展而来 在HttpServlet中加入了一些附加的方法 这些方法可以被协助处理HTTP基本请求的HttpServlet类中的方法service自动地调用 这些方法有 doGet doPost doPut doDelete doHead doOptions doTrace doGet用来处理HTTP的GET请求 这个GET操作仅仅允许客户从HTTPserver上取得GET资源 重载此方法的用户自动允许支持方法HEAD 这个GET操作被认为是安全的 没有任何的负面影响 对用户来说是很可靠的 doGet方法格式为 protectedvoiddoGet HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doPost用来处理HTTP的POST请求 这个POST操作包含了在必须通过此Servlet执行的请求中的数据 由于它不能立即取得资源 所以对于那些涉及到安全性的用户来说 通过POST请求操作会有一些副作用 doPost方法格式为 protectedvoiddoPost HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doPut用来处理HTTP的PUT请求 此PUT操作模拟通过FTP发送一个文件 对于那些涉及到安全性的用户来说 通过PUT请求操作也会有一些副作用 doPut方法格式为 protectedvoiddoPut HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doDelete用来处理HTTP的DELETE请求 此操作允许客户端请求一个从server移出的URL 对于那些涉及到安全性的用户来说 通过DELETE请求操作会有一些副作用 doDelete方法格式为 protectedvoiddoDelete HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doHead用来处理HTTP的HEAD请求 缺省地 它会在无条件的GET方法执行时运行 但是不返回任何数据到客户端 只返回包含内容信息的长度的header 由于用到GET操作 此方法应该是很安全的 没有副作用 也是可重复使用的 doHead方法格式为 protectedvoiddoHead HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doOptions用来处理HTTP的OPTIONS请求 此操作自动地决定支持什么HTTP方法 比如说 如果读者创建HttpServlet的子类并重载方法doGet 然后方法doOptions会返回下面的header GET HEAD TRACE和OPTIONS doOptions方法格式为 protectedvoiddoOptions HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException doTrace用来处理HTTP的TRACE请求 此方法的缺省实现产生一个包含所有在trace请求中的header的信息的应答 response 在开发Servlet时 多数情况下需要重载此方法 doTrace方法格式为 protectedvoiddoTrace HttpServletResquestrequest HttpServletResponseresponse throwsServletException IOException HttpServletResponseHttpServerletResponse用来向客户端发送响应信息 HttpServerletResponse接口给出相应客户端的Servlet方法 它允许Servlet设置内容长度和回应的MIME类型 并且提供输出流的ServletOutputStream HttpServerletRequest子类可以给出更多的protocal specific容量的信息 HttpSessionHttpSession接口被Servlet用来实现在HTTP客户端和HTTP会话两者之间的关联 这种关联可能在多处连接和请求中持续一段给定的时间 session用来在无状态的HTTP协议下越过多个请求页面来维持状态和识别用户 一个session可以通过Cookie或重写URL来维持 为什么要使用JavaServlet 传统的Web应用与基于Java的Web应用的比较传统的Web应用程序 在Web应用中 用户请求的资源一般分为两种 一种是静态的资源请求 如HTML文档或图片文件等 另一种是动态请求 Web服务器端必须用应用程序组件进行处理 传统的Web服务器在处理客户的动态请求时是采用CGI脚本来进行处理的 当客户端向Web服务器发送一个HTTP请求时 如果属于访问静态的资源请求 Web服务器会自行进行处理 并产生响应信息 如果是动态请求 则由CGI脚本程序负责处理 处理结果交给Web服务器 然后由Web服务器传回客户端 传统的CGI处理程序如下图所示 CGI技术的优点 可以用C 和Perl等多种语言编写 几乎所有的Web服务器都支持CGI程序 每个动态请求启动一个独立进程 多个CGI程序执行时相互之间不会影响 CGI技术的缺点 每个动态请求分别对应一个独立的CGI处理进程 造成系统整体资源负担很重 太多的操作系统进程会造成Web服务器的性能变得很不稳定 CGI程序通常不是平台独立的 很难移植到其它平台 基于Java技术的Web应用程序 基于Java技术的Web应用程序的核心组件是Servlet Servlet运行于某个特定的环境中 Servlet容器 Servlet Web服务器与Servlet容器三者之间的关系如下图所示 下面来看一下Servlet容器与Servlet是如何处理HTTP请求的 Web服务器启动后 Servlet容器会实例化一个Servlet实体 当Web服务器接收到一个动态HTTP请求时 它会把请求转交给Servlet容器 此时Servlet容器会启动一个线程 代表该请求 当接收到第二个请求时 Servlet容器再产生第二个线程代表该请求 因此 Servlet容器是以多线程的方式来执行Servlet服务的 如下图所示 为什么要使用JavaServlet Servlet是基于线程的 执行效率高 Servlet是持久的 它只需Web服务器加载一次 并且可以在不同请求之间保持服务 如一次数据库连接 Servlet是可扩展的 它拥有Java的所有优点 如平台无关和面向对象等特征 Servlet是安全的 因为从外界调用Servlet惟一方法就是通过Web服务器 提供了高水平的安全性保障 使用Servlet的方式多得超出你的想象 如果考虑到你在服务器上所能访问到的所有服务 使用Servlet可能是最佳的选择 当然 Servlet也不是没有缺点 这正是Sun为什么还要推出JSP的原因 Servlet是JSP技术的基础 通常大型的Web应用需要Servlet和JSP配合才能完成 使用JavaServlet的基本流程客户端 一般通过Web浏览器 发出HTTP请求 Web服务器接收该请求并将其发给Servlet 如果该Servlet尚未被加载 Web服务器便将其加载到Java虚拟机环境并且执行 Servlet接收该HTTP请求并执行某种处理 Servlet向Web服务器返回应答 Web服务器将从Servlet收到的应答 通常为HTML格式 发送给客户端 注意 Web浏览器并不直接和Servlet通信 它是由Web服务器 如Tomcat 加载和执行的 JavaServletAPIJavaServletAPI的类和接口组成两个Java包 Javax servlet和Javax servlet http 前者处理通用的Servlet 它提供了控制Servlet生命周期 lifecycle 所必需的Servlet接口 是编写Servlet时必须要实现的 后者则处理专用的HTTPServlet 它提供了从Servlet接口派生出的专门用于处理HTTP请求的抽象类和一般的工具类 JavaServlet需要在遵循JavaServlet规范定义的标准容器环境中运行 容器环境在HTTP通信和Web服务器之间实现了一个抽象层 容器环境提供了实现ServletRequest和ServletResponse接口的类 这两个类分别负责将用户的请求传递给JavaServlet 并将结果返回给用户 Tomcat就是基于JavaServlet2 3规范实现的一种标准容器环境 可用作Web服务器和Servlet JSP引擎 HttpServlet类定义了doGet方法和doPost方法 分别用以响应来自客户的get请求和post请求 这些方法是由service方法调用的 当一个请求到达服务器上时 就会调用这个service方法 service方法首先判断请求的类型 然后调用适当的方法处理该请求 doGet方法和doPost方法接收HttpServletRequest和HttpServletResponse对象作为参数 HttpServlet类 HttpServlet类处理用户HTTP请求的过程 HttpServletRequest接口是对Http协议请求消息的包装 通常客户端传给Web服务器的数据包含在Http的请求消息中 Get方法下 数据以查询串的形式放在请求的URI的末尾 Post方法下 数据包含在请求的实体中 两种情况下 数据都是以 关键字 值 对的形式存放 HttpServletRequest接口继承了ServletRequest接口中定义的一些获取表单数据的基本方法 HttpServletRequest接口 HttpServlet的每个doGet调用或doPost调用都接收到一个实现了HttpServletRequest接口的对象 执行Servlet的Web服务器创建一个HttpServletRequest对象 并将此对象传递给Servlet的service方法 该方法又将它传递给doGet方法和doPost方法 该对象中包含有来自客户的请求 HttpServletRequest接口 HttpServletResponse接口是对Http协议响应消息的面向对象包装 里面定义了一系列操作Http协议响应消息的方法 其中 常用有 setContentType 方法 设置Http响应消息的MIME类型 例如 当向浏览器返回HTML文本时 用text html类型 返回gif图像时用image gif类型 getWriter 方法 当把Servlet的输出结果作为文本返回客户时 PrintWriter对象自动把Java内部的Unicode编码字符转换成正确的编码 通过PrintWriter的Println方法可以将数据写入到响应消息的文本流中 getOutputStream 方法 返回ServletOutputStream类型的对象 该对象代表Servlet向客户端发送二进制数据流 HttpServletResponse接口 JavaServlet的生命周期Servlet接口定义了下列与Servlet生命周期 lifecycle 相关的方法 这些方法是由Servlet容器调用的 三个方法的定义为 Publicvoidinit ServletConfigconfig throwsServletExceptionPublicvoidservice ServletRequestreq ServletResponseres throwsServletException java io IoExceptionPublicvoiddestroy Servlet的生命周期如下图所示 JavaServlet的生命周期 续1 从生成一个JavaServlet实例开始到其消亡为止的这段时间称作JavaServlet的生命周期 lifecycle JavaServlet的基本生命周期如下 用户向Web服务器发出请求 服务器根据需要将该请求重定向到Servlet容器 由Servlet容器负责加载一个JavaServlet类 Servlet容器根据用户请求创建一个Servlet实例 或创建多个Servlet实例 并将这些实例加入到Servlet实例池中 Servlet容器调用HttpServlet init 方法来初始化Servlet 并且传入一个实现ServletConfig接口的对象 该对象包含了初始化参数和容器环境的信息 Servlet容器利用一个HttpServletRequest和HttpServletResponse对象 封装从客户端接收到的HTTP请求和由JavaServlet生成的响应 Servlet容器将HttpServletRequest和HttpServletResponse对象传递给HttpServlet Service 方法 这样 一个定制的JavaServlet就可以访问这种HTTP请求和响应接口 定制的JavaServlet从HttpServletRequest对象读取HTTP请求数据 访问来自HttpSession对象的状态信息 进行具体应用的处理 并利用HttpServletResponse对象生成HTTP响应数据 当Web服务器和容器关闭时 调用HttpServlet destory 方法释放所有打开的资源 并进行一些关闭前的处理 JavaServlet的运行环境及配置 同JSP一样 运行JavaServlet也需要JDK和Tomcat的支持 这些工具可以从sun公司的Web站点下载 在JavaServlet的运行环境中包含了编制JavaServlet所需的软件包 servlet jar 因此 需要配置使用该软件包的CLASSPATH环境变量 环境变量设置 Path c j2sdk1 4 1 02 bin CLASSPATH c j2sdk1 4 1 02 lib dt jar c Tomcat4 1 common lib servlet jar Web应用程序的结构与部署 一个Web应用程序包含许多资源 如Servlet JSP页面 实用类 第三方JAR文件 HTML 多媒体文件等 为了对这些资源进行有效管理 Servlet规范了一个Web应用程序包的标准目录结构 Web应用程序的目录结构 Web应用程序的资源以层次目录的形式存储在Web应用包中 Tomcat目录下的webapps是部署在Tomcat下的所有Web应用的根目录 所有的Web应用都存放在webapps目录下 Web应用程序的目录结构 理解Web应用根目录 默认为Tomcat安装目录下的webapps理解WEB INF目录 每个Web应用程序都必须有一个WEB INF目录 主要分为三个部分 1 classes目录 如存放Web应用程序所包含的Servlet类文件 2 lib目录 如特定的类库jar文件 3 web xml部署描述文件 包含诸如Servlet定义 URL映射 连接超时 安全控制等重要的配置信息 与Servlet执行方式相关的配置 在web xml中与Servlet执行方式相关的配置元素有 定义Servlet名称与Servlet实现类之间的映射关系 定义Servlet与用户调用Servlet的URL之间的映射 定义Servlet名称与Servlet实现类之间的映射关系 定义Servlet的名称 Servlet的实现类名称 部署Servlet初始化参数 可以向Servlet实现类传递一些初始化信息 该元素包含两个子元素 初始化参数的名称 初始化参数的值 与Servlet执行方式相关的配置 定义Servlet与浏览器用户调用URL间的对应关系 通过元素定义 包含两个子元素 指定Servlet名称 定义访问指定Servlet所对应的URL样式 JavaServlet编程 编写JavaServlet程序的完整过程包括 编写编译配置部署访问 JavaServlet编程 编写Servlet创建一个包packageservlets 引入用到的包importjavax servlet importjavax servlet http 定义类的基本框架并继承HttpServletpublicclassHelloServletextendsHttpServlet JavaServlet编程 编写成员方法一般情况下 只需要完成服务类方法doPost或者doGet 通常实现一个 另外一个调用即可 publicvoiddoPost HttpServletRequestrequest HttpServletResponseresponse throwsServletException IOException doGet request response JavaServlet编程 编译ServletServlet开发所需要的包有javax servlet 和javax servlet http 是由应用服务器提供的 位于tomcat安装目录下的lib下的servlet api jar压缩包中 需要把压缩包配置到环境变量中 javacHelloServlet java JavaServlet编程 配置Servlet在配置文件web xml中进行配置配置包括Servlet的声明访问方式的声明 JavaServlet编程 配置ServletServlet的声明helloservlets HelloServlet JavaServlet编程 配置Servlet访问方式的声明hello hello JavaServlet编程 部署ServletServlet编写完成之后 需要部署到服务器才能访问 位置 Web应用的WEB INF classes下面 JavaServlet编程 Servlet的调用方法 在浏览器中输入Servlet的URL 例如 http localhost 8080 examples servlet HelloWorld通过HTML页面调用Servlet 例如 表单 meta标记 metahttp equiv refresh content 4 url http localhost 8080 examples servlet HelloWorld 其中 content是切换到URL所指页面的时间 秒 从另一个Servlet中调用Servlet JavaServlet编程 一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陕能(庆阳)能源开发有限公司招聘15人笔试参考题库附带答案详解
- 朝阳师范高等专科学校《程序设计课程设计》2023-2024学年第二学期期末试卷
- 郑州科技学院《锻压工艺及设备》2023-2024学年第二学期期末试卷
- 蚌埠学院《药学综合技能》2023-2024学年第二学期期末试卷
- 安徽大学江淮学院《大数据新闻》2023-2024学年第二学期期末试卷
- 苏州卫生职业技术学院《测试技术与传感器》2023-2024学年第二学期期末试卷
- 海南外国语职业学院《医学影像成像理论》2023-2024学年第二学期期末试卷
- 辽宁省交通高等专科学校《播音主持创作基础(一)》2023-2024学年第二学期期末试卷
- 武汉信息传播职业技术学院《电网调度与运行及案例分析》2023-2024学年第二学期期末试卷
- 荆楚理工学院《铸造合金及其熔炼》2023-2024学年第二学期期末试卷
- 2024届新高考数学大题训练:数列(30题)(解析版)
- 福建省能源石化集团有限责任公司招聘笔试题库2024
- 2024年安徽省高考政治+历史+地理试卷(真题+答案)
- “两弹一星”精神弘扬与传承智慧树知到期末考试答案章节答案2024年青海师范大学
- 2024年江苏省盐城市中考数学试题(原卷版)
- 中医内科学:汗证
- 房产土地税培训课件
- 电子行业研发工程师劳动合同范本
- 法律法规合规性评价记录表
- 能源英语面面观 知到智慧树网课答案
- 电脑时代需要练字辩论材料
评论
0/150
提交评论