一、Servlet的继承层次
Servlet接口:
//Servlet接口的定义 package javax.servlet; import java.io.IOException; public interface Servlet{ //创建Servlet实例后调用的初始化方法 public void init (ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); //处理客户端请求的方法 public void service (ServletRequest request, ServletResponse response) throws ServletException, IOException; public String getServletInfo(); //销毁Servlet实例前调用的方法 public void destory(); }
GenericServlet抽象类:
GenericServlet实现了Servlet中除了sevice方法外的其他4个方法。
HttpServlet抽象类:
HttpServlet实现了GenericServlet中的service方法,并通过service方法将处理HTTP的不同方法的工作交由 相应的方法处理,如doGet、doPost。
虽然HttpServlet是一个抽象类,但是它不包含任何抽象方法。
MyServlet类:
我们自己定义的Servlet,继承自HttpServlet。
二、Servlet的配置
1、利用@WebServlet annotation进行配置
@WebServlet的常用属性
//可选属性,指定该Servlet是否支持异步操作模式。 asyncSupported //可选属性,指定该Servlet的显示名。 displayName //可选属性,用于为该Servlet配置参数。 initParams //可选属性,用于将该Servlet配置成load-on-startup的Servlet。 loadOnStartup //可选属性,指定该Servlet的名字。 name //可选属性,指定该Servlet处理的URL urlPattern/value
示例:
@WebServlet(name = "testServlet" , urlPattern = {"/testServlet"} , loadOnStartup = 1 , initParams = { @WebInitParam(name = "driver", value = "com.mysql.jdbc.Driver"), @WebInitParam(name = "url", value="jdbc:mysql://localhost:3306/javaee"), @WebInitParam(name = "name", value = "root"), @WebInitParam(name = "pwd", value = "root") }) public class TestServlet extends HttpServlet{ }
注意:
如果使用Annotaion来配置Servlet,就不要在web.xml文件的根元素(web-app)中指定metadata-complete="true",也不要在web.xml文件中配置该Servlet。
2、利用web.xml文件进行配置
<servlet> <!--指定Servlet的名字,相当于@WebServlet的name属性--> <servlet-name>testServlet</servlet-name> <!--指定Servlet的实现类--> <servlet-class>org.lgy.servlet.TestServet</servlet-class> </servlet> <servlet-mapping> <!--指定Servlet的名字,与上面定义的名字相同--> <servlet-name>testServlet</servlet-name> <!--指定Servlet映射的URL,相当于@WebServlet的urlPatterns属性--> <url-pattern>/testServlet</url-pattern> </servlet-mapping>
三、Servlet的生命周期
- 创建Servlet实例
- 调用init方法进行初始化
- Servlet初始化后,将一直存在于内存中(仅初始化一次),一直等待响应客户端的请求,直至被销毁。
- Web容器决定销毁Servlet时,调用destroy方法,回收资源。
四、创建Servlet的时机
创建Servlet实例有2个时机:
- 客户端第一次请求某个Servlet时,容器创建该Servlet的实例,这是绝大部分Servlet被创建的时机。这种类型的Servlet无需额外的配置。
- 容器启动时立即创建Servlet实例,即load-on-startup Servlet。这类Servlet需要配置load-on-startup属性。
//loadOnStartup属性指定该Servlet在容器启动后立即实例化,数值越大,优先级越高 @WebServlet(loadOnStartup = 1) public class TestServlet extends HttpServlet{ }
<servlet> <!--指定Servlet的名字,相当于@WebServlet的name属性--> <servlet-name>testServlet</servlet-name> <!--指定Servlet的实现类--> <servlet-class>org.lgy.servlet.TestServet</servlet-class> <!--设置该Servlet在容器启动后立即实例化,数值越大,优先级越高--> <load-on-startup>1</load-on-startup> </servlet>
相关推荐
Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all
Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...
Servlet学习笔记Servlet学习笔记
林学良Jsp&Servlet学习笔记,html格式的,很基础的学习文档。
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,...《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构。
Servlet学习笔记
JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷
Servlet详解 Servlet详解 Servlet详解
[JSP&Servlet;学习笔记(第2版)]。
JSP&Servlet学习笔记,适合初学jsp和servlet的人群,初学者学习可能有点困难
吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案 本资源为吉林大学珠海学院JSP&Servlet学习笔记(第二版)的课后答案,涵盖了JSP和Servlet相关的知识点。本笔记共分为九章,每章节都包含了相关的问题答案,...
JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...
servlet学习笔记.doc
方立勋servlet学习笔记
书 名:JSP & Servlet学习笔记(第2版) 作 者:(台湾)林信良 著 出 版 社:清华大学出版社 出版时间:2012-5-1 ISBN:9787302283669 纸书页数:456页 定 价:¥ 58.00 内容简介: 本书是作者多年来...
[JSP&Servlet学习笔记(第2版)] 林信良
jsp&servlet学习笔记(第2版)光盘,买书附赠光盘,完片版本。
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...