javaweb电子教案第五章

上传人:第*** 文档编号:61631940 上传时间:2018-12-07 格式:PPT 页数:44 大小:1.40MB
返回 下载 相关 举报
javaweb电子教案第五章_第1页
第1页 / 共44页
javaweb电子教案第五章_第2页
第2页 / 共44页
javaweb电子教案第五章_第3页
第3页 / 共44页
javaweb电子教案第五章_第4页
第4页 / 共44页
javaweb电子教案第五章_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《javaweb电子教案第五章》由会员分享,可在线阅读,更多相关《javaweb电子教案第五章(44页珍藏版)》请在金锄头文库上搜索。

1、第5章 基于IDE开发Servlet,本章首先分析了Web应用与HTTP通信协议之间的关系,然后在此基础上阐述了Servlet运行原理和生命周期,分析了基本Servlet的结构。最后,通过示例阐述了在JDeveloper和OC4J环境下,开发、部署和运行Servlet的原理和方法。,第5章 基于IDE开发Servlet,5.1 Servlet编程基础 5.2 基本Servlet结构 5.3 用JDeveloper开发Servlet 5.4 小 结,5.1 Servlet编程基础,Servlet是Sun公司用于实现CGI(Common Gateway Interface)程序设计的Java技术解

2、决方案,是一种用于服务器端程序设计的Java API Servlet自1997年推出以来,由于具有的平台无关性、可扩展性、以及能提供比CGI程序更优越的性能等基本特征,使它得到了普遍的应用,并成为Java 2企业应用平台的一个核心组件。,5.1.1 HTTP通信协议,根据HTTP通信协议规范,每个HTTP请求都包含以下信息: HTTP请求方式(HTTP Method); 被请求的URI; HTTP的版本; 标头信息(Request Header); 请求内容(Message Body)。,图5.1 HTTP请求的基本结构,2HTTP响应,根据HTTP通信协议的规定,每个HTTP响应必须包含以下

3、信息: HTTP版本; HTTP状态代码(Status Code); HTTP状态代码所对应的摘要文字(Reason-Phrase); 标头信息(Response Header); 响应主体(Message Body)。,5.1.2 Servlet运行原理,1Servlet容器处理HTTP请求的方式,2Servlet运行原理,注意:,Servlet不是用户直接调用的应用程序,而是由实施该Servlet的Web应用中的Web容器根据进入的HTTP请求调用的Servlet。 当一个Servlet被调用时,Web容器把请求信息转发到该Servlet,这样Servlet就可以处理它并生成动态响应信息。

4、 Web容器是通过接收Servlet的请求与Web服务器交互,并且把响应信息回送到Web服务器。,5.2 基本Servlet结构,Java Servlet API包括两个包,分别是javax.servlet包和javax.servlet.http包 第一个包包含了所有的Servlet实现和扩展的通用接口和类; 第二个包包含了在实现HTTP的特定Servlet时所需要的扩充类。,javax.servlet.Servlet接口,Servlet接口提供了5种方法,其中有最重要的3个方法如下所示: init( )方法对Servlet进行初始化。 service( )方法接收和响应客户的请求。 dest

5、roy( )方法执行清除等收尾工作。,图5.5 Servlet框架结构的高级对象模型,5.2.1 GenericServlet与HttpServlet,HttpServlet是GenericServlet的子类,在开发自己的Servlet应用时,要继承这两个类中的一个 在Servlet中没有main( )方法,所以Servlet应用必须实现javax.servlet.Servlet接口 每当Web服务器接收一个指向某个Servlet的请求时,它就要调用Servlet的service( )方法,5.2.1 GenericServlet与HttpServlet,当用户的Servlet继承Gener

6、icServlet类时,必须实现service( )方法 service( )方法是一个抽象方法,其定义如下所示: public abstract void service(ServletRequest req,ServletResponse res) throws ServletException,IOException;,5.2.1 GenericServlet与HttpServlet,当用户的Servlet继承HttpServlet类时,不需要实现service( )方法,HttpServlet类已经为用户实现了该方法 service( )方法的定义如下所示: protected voi

7、d service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException;,5.2.2 Servlet生命周期,一个Servlet的生命周期由三个阶段构成: 何时加载Servlet 如何响应客户端的请求 何时卸载Servlet提供的服务 上述三个阶段构成了Servlet的生命周期(Life Cycle) 注意:Servlet的生命周期由Servlet容器控制,而不是由程序员控制,5.2.2 Servlet生命周期,javax.servlet.Servlet接口说明了Servlet生

8、命周期的框架结构。这个接口定义了Servlet生命周期的方法: init( )、service( )、destroy( )。 Servlet容器通过这三个方法控制每个Servlet的生命周期,5.2.2 Servlet生命周期,Servlet的生命周期的请求响应模型 Servlet先由Web容器负责初始化,然后再处理请求 Servlet组件接着从客户端接收请求。实际上是由Web容器接收相关请求,然后把该对象映射到适当的组件实例,最后向该组件传递具有正确格式的请求和响应对象 Servlet接着处理相应的请求 一旦处理完毕,就会向客户层返回一条响应信息 最后,由Web容器负责销毁它生成的任何Ser

9、vlet实例。,5.3 用JDeveloper开发Servlet,5.3.1 创建Servlet类 创建Applications和工程 在basicServlet中添加一个Servlet对象,5.3 用JDeveloper开发Servlet,Servlet定义对话框,5.3 用JDeveloper开发Servlet,定义Servlet的URL映射名字和模式,5.3 用JDeveloper开发Servlet,创建Servlet参数对话框,basicServlet.java源代码,/ * basicServlet.basicServlet.java * / package basicServlet

10、; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*;,basicServlet.java源代码,public class basicServlet extends HttpServlet private static final String CONTENT_TYPE = “text/html; charset=GBK“; public void init(ServletConfig config) throws Servlet

11、Exception super.init(config); ,basicServlet.java源代码,/ * Process the HTTP doGet request. * / public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println(“); ou

12、t.println(“basicServlet“); out.println(“); out.println(“The servlet has received a GET. This is the reply.“); out.println(“); out.close(); ,basicServlet.java源代码,/* Process the HTTP doPost request. */ public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,

13、IOException response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println(“); out.println(“basicServlet“); out.println(“); out.println(“The servlet has received a POST. This is the reply.“); out.println(“); out.close(); ,basicServlet.jpr的运行结果,5.3.2 分析Servlet类,1基本组成 basic

14、Servlet类继承了HttpServlet类。HttpServlet是一个抽象类,它简化了HTTP Servlet的编码工作 HttpServlet类又继承了GenericServlet类,提供了处理HTTP协议特定请求的功能 这些类之间的关系可以参阅图5.5,2继承的方法,init( )方法 super.init(config); 在init( )方法中可以实现以下一些典型任务: 从配置文件这样的永久性资源中读取配置数据。 使用ServletConfig对象读取初始化参数。 初始化诸如注册一个数据库系统驱动程序、连接服务器日志记录服务等这样的一次性活动。,2继承的方法,doGet( )和d

15、oPost( )方法 doGet( )方法处理GET请求,doPost( )方法处理POST请求。 HttpServletRequest对象包含客户机发出的信息 HttpServletResponse对象则包含了回送给客户机的信息 response.setContentType(CONTENT_TYPE); 这个语句用于设置响应的内容类型和字符编码,这个响应属性只能设置一次 在basicServlet类中,使用的是PrintWriter类,所以响应类型应设置为“text/html”,2继承的方法,创建PrintWriter的对象 PrintWriter out = response.getWr

16、iter(); out为对输出流对象的引用,它允许输出HTML文本,并将这些HTML文本回送给HttpServletResponse对象的客户机浏览器 out.println(“); out.println(“BasicServlet“); out.println(“); out.println(“The servlet has received a GET. This is the reply.“); out.println(“); out.close( );,提示:,通过以上内容的学习,读者对一个Servlet的组成有了基本的认识,也知道了开发一个Servlet需要符合Servlet API框架结构的要求。因此,读者现在应该能够创建一个自己的基本Servlet了。,5.3.3 部署与运行Web应用,1启动OC4J服务器,2创建一个OC4J连接,2创建一个OC4J连接,3创建Web应用部署文件,3创建Web应用部署文件,- Deployment started. -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号