第4章 Servlet编程技术.ppt

上传人:bao****ty 文档编号:144337656 上传时间:2020-09-07 格式:PPT 页数:62 大小:1.99MB
返回 下载 相关 举报
第4章 Servlet编程技术.ppt_第1页
第1页 / 共62页
第4章 Servlet编程技术.ppt_第2页
第2页 / 共62页
第4章 Servlet编程技术.ppt_第3页
第3页 / 共62页
第4章 Servlet编程技术.ppt_第4页
第4页 / 共62页
第4章 Servlet编程技术.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《第4章 Servlet编程技术.ppt》由会员分享,可在线阅读,更多相关《第4章 Servlet编程技术.ppt(62页珍藏版)》请在金锄头文库上搜索。

1、第4章 Servlet编程技术,4,内容提要,Servlet se:vlit简介 Servlet生命周期 如何创建Servlet:新建方法、运行方法 Servlet API,什么是Servlet(1/3),Servlet例子 public class SomeServlet extends HttpServlet/必须继承自HttpServlet /使用“request”读取和请求有关的信息(比如Cookies)和表单数据 /使用“response”指定HTTP应答状态代码和应答头(比如指定内容类型,设置Cookie) public void doGet( HttpServletRequest

2、 request, HttpServletResponse response)throws ServletException,IOException / 使用 out把应答内容发送到浏览器 PrintWriter out = response.getWriter(); out.println(); out. Println(.); public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException doGet( request, respo

3、nse); ,什么是Servlet(2/3),生成的Servlet:FirstServ代码,什么是Servlet(3/3),运行Servlet,Servlet简介(1/6),Servlet是服务器端的Java小程序,用于响应客户机的请求。在默认情况下,Servlet采用一种无状态的请求-响应处理方式。Servlet代码的主要作用是为了增强Java服务器端功能。 Servlet与Java类 Servlet是一个标准的Java类; 和一般Java类不同之处就在于Servlet可以处理HTTP请求; Servlet API提供了大量的方法,它是用Java语言的ServletAPI来编写的特殊的Jav

4、a类。,Servlet简介(2/6),需要Servlet容器 把这些Java类的字节码文件(也称为二进制文件,.class文件)放到Servlet容器(比如:tomcat)的相应目录中时,它们就可以接受客户端响应了(在80, 8080端口)。 Servlet与JSP JSP是以另一种方式实现的Servlet,Servlet是JSP的早期版本; JSP更注重页面的表现,Servlet更注重业务逻辑的实现; JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。,Servlet简介(3/6),Servlet技术规范 定义了容器功能 定义了Servlet接口,是容器与Ser

5、vlet之间的契约 程序员所写Servlet 是一个 Java类 实现了Servlet接口 在容器上运行 请求的入口,实现业务系统功能 获取用户输入参数 完成业务功能 生成输出(响应),Servlet简介(4/6),Servlet简介(5/6),基于容器/Servlet的请求与响应 客户机将 HTTP 请求发送给 Web 服务器 Web 服务器将该请求转发给 Servlet容器 Servlet容器做很多事,将请求转发给Servlet Servlet 处理该请求 Servlet产生输出发送给容器 Servlet容器将输出转为http响应发送给 Web 服务器 Web 服务器将http响应转发给客

6、户机 浏览器根据响应显示页面,Servlet简介(6/6),Servlet例子 public class SomeServlet extends HttpServlet/必须继承自HttpServlet /使用“request”读取和请求有关的信息(比如Cookies)和表单数据 /使用“response”指定HTTP应答状态代码和应答头(比如指定内容类型,设置Cookie) public void doGet( HttpServletRequest request, HttpServletResponse response)throws ServletException,IOExceptio

7、n / 使用 out把应答内容发送到浏览器 PrintWriter out = response.getWriter(); out.println(); out. Println(.); public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException doGet( request, response); ,Servlet的生命周期(1/5),Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在

8、客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。,Servlet的生命周期(2/5),Servlet的生命周期主要由3个过程组成。 1、init()方法:服务器初始化Servlet。 只在Servlet第一次被请求加载的时候被调用一次,完成必要的初始化工作。 当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。 该方法是HttpServlet的方法,可以在Servlet中重写这个方法。方法的描述为:,public void init(ServletCo

9、nfig config) throws ServletException /初始化 ,Servlet的生命周期(3/5),Servlet的生命周期主要由3个过程组成。 2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求 该方法是HttpServlet的方法,可以在Servlet中直接继承该方法或重写这个方法。方法的描述为: 第一个参数是HttpServletRequest类型的对象,封装了用户的请求信息; 第二个参数是HttpServletResponse类型的对象,用来响应用户的请求。 和init()方法不同的是,service方法可能被多次调用,每次用户请求

10、都导致service方法被调用执行,调用过程运行在不同的进程中,互不干扰。,public void service( HttpServletRequest request, HttpServletResponse response) throw ServletException,IOException /处理请求 ,Servlet的生命周期(4/5),Servlet的生命周期主要由3个过程组成。 3、destroy()方法:调用该方法消灭Servlet对象。 该方法是HttpServlet的方法,可以在Servlet中直接继承该方法,一般不需要重写,方法的描述为:public destroy(

11、) 当Servlet引擎终止服务时,比如关闭服务器等,destroy()方法会被执行,销毁Servlet对象。,Servlet的生命周期(5/5),容器管理Servlet 依据 Web.xml 接口Servlet(init() destroy() service() 管理 创建Servlet对象,时机: 容器启动时,且配置了: 1 第一次使用的时候 调用doGet doPost destroy()方法, 关闭容器时,长时间不使用,创建Servlet(1/5),首先创建一个Eclipse的Dynamic Web Project工程,然后右击工程中的src目录,新建一个Servlet文件。,创建S

12、ervlet(2/5),工程目录组织图,创建Servlet(3/5),生成的Servlet:FirstServ代码,创建Servlet(4/5),Web.xml,创建Servlet(5/5),运行Servlet,Servlet API(1/41),Servlet API包含两个包:javax.servlet和javax.servlet.http包 javax.servlet包中定义的类和接口是独立于协议的; javax.servlet.http中包含了具体于HTTP协议的类和接口。javax.servlet.http包中的某些类或接口继承了某些javax.servlet包中的类或接口。,表3-

13、1 Servlet API接口,Servlet API图示,Servlet API(4/41),Servlet接口 是Web 容器和 Servlet 之间的合约 所有 Servlet 都应直接或间接实现这个接口 该接口定义了容器管理 Servlet 生命周期的方法,/ Servlet初始化 public void init(ServletConfig config)throws ServletException /响应请求,给予服务 public void service(ServletRequest req,ServletResponse res) throws ServletExcepti

14、on,java.io.IOException /销毁类 public void destroy() /获得Servlet实例本身的配置信息 public ServletConfig getServletConfig() /获得Servlet实例本身的描述信息 public java.lang.String getServletInfo(),Servlet API(5/41),GenericServlet 抽象类,提供 servlet 接口的基本实现 public abstract class GenericServlet implements Servlet, ServletConfig, j

15、ava.io.Serializable,/ Servlet初始化 public init() / 日志 public void log(String ) public void log(String,Throwable) /响应请求,给予服务 public abstract void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException public ServletConfig getServletConfig(); public ServletContext ge

16、tServletContext();,Servlet API(6/41),HttpServlet 类 特定于 HTTP 的 Servlet 接口实现 对于每种类型的 HTTP 请求方法,HttpServlet 类提供相应的 doXxx()方法,由service方法相应调用 一般只要把具体逻辑放在doPost和doGet方法的任一个中,然后在另一个方法里调用这个方法就可以了。 程序员重写doXxx()方法,一般不重写service方法,ServletConfig(1/2),Servlet配置信息:ServletConfig 功能:获取在web.xml中该Servlet的配置信息 容器在 Servlet 的初始化过程中将创建 ServletConfig 对象,并传递给 Servlet,/得到Servlet的命名参数 public String getInitParameter(String); /得到Servl

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

当前位置:首页 > 高等教育 > 大学课件

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