在servlet_1中讲到过,Servlet的框架是由两个Java包组成:
– javax.servlet包:定义了所有的Servlet类都必须实现或扩展的通用接口和类。
– javax.servlet.http包:定义了采用HTTP协议通信的HttpServlet类。
Servlet的生命周期
·Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。在Servlet接口中定义了五个方法,其中有三个方法代表了Servlet的生命周期:
– init方法:负责初始化Servlet对象;
– service方法:负责响应客户的请求;
– destroy方法:当Servlet对象退出生命周期时,负责释放占用的资源。
·Servlet 的生命周期可以分为三个阶段:(其后为对应阶段Servlet容器调用的方法)
– 初始化阶段,init()
– 响应客户请求阶段 ,service()
– 终止阶段,destroy()
初始化阶段
·在下列时刻Servlet容器装载Servlet:
– 在Servlet容器启动后,客户首次向 Servlet 发出请求
– Servlet的类文件被更新后,重新装载Servlet
– Servlet容器启动时自动装载某些Servlet
·Servlet被装载后,Servlet容器创建一个 Servlet 实例并且调用 Servlet 的init()方法进行初始化。在Servlet的整个生命周期中,init方法只会被调用一次。
验证初始化:
(1)在Servlet容器启动后,客户首次向 Servlet 发出请求。
创建一个测试用servlet:
public class initServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.print("doGet invoked"); } @Override public void init() throws ServletException { System.out.print("init invoked"); } }
开启服务器(本次测试使用tomcat服务器),打开浏览器,第一次访问该initServlet,得到结果:
从结果可以看到,init方法只在Servlet转载的时候调用过一次,在服务器重启或者更新之前都不会执行第二次。Servlet的类文件被更新后,重新装载Servlet的初始化情况与此类似。以上实验涉及道德两种情况均是需要服务器接收到客户端的请求,才对Servlet进行加载的。
(2)Servlet容器启动时自动装载某些Servlet
在上面实验的基础之上,修改web项目的web.xml文件。找到配置initServlet的标签处,并添<load-on-startup>元素。
<servlet> <servlet-name>initServlet</servlet-name> <servlet- class>com.gmail.sillyli123456789.servlet.initServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
<load-on-startup>元素表示在服务器启动的时候,自动加载指定的Servlet。其中的数字代表,当有多个Servlet需要被自动的加载时的先后顺序。
在服务器启动的过程中,可以看到:
打开浏览器,访问该initServlet,得到结果:
同时再一次证明了在Servlet的整个生命周期中,init方法只会被调用一次。
相关推荐
【标题】"Servlet_Jsp_Login.rar" 是一个包含Java Servlet和JSP技术的登录系统实现。这个项目旨在演示如何将Servlet与JSP相结合,利用数据库处理用户登录验证,确保安全性并提供基本的用户身份验证功能。 【描述】...
geronimo-servlet_2.5_spec-1.2.jar geronimo-servlet_2.5_spec-1.2.jar
2. **Servlet生命周期**: Servlet有三个主要阶段:加载和实例化、初始化和服务。当服务器接收到对Servlet的第一个请求时,会加载Servlet类并创建其实例。然后调用`init()`方法进行初始化,通常用于一次性设置如...
2. **web.xml**:这是Web应用的部署描述符,定义了Servlet的配置信息,包括Servlet的名称、类名、URL映射以及初始化参数等。通过编辑web.xml,我们可以控制Servlet的行为。 3. **MVC框架**:如果源码包含Model-View...
5.0javaEE_原生Servlet_MySql塞北村镇旅游网站设计(源码+数据库sql+lun文+视频齐全)javaEE_原生Servlet_MySql塞北村镇旅游网站设计(源码+数据库sql+lun文+视频齐全)javaEE_原生Servlet_MySql塞北村镇旅游网站设计...
4.2javaEE_原生Servlet_MySql企业财务管理系统设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_原生Servlet_MySql企业财务管理系统设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_原生Servlet_MySql企业财务...
2. **JSP元素**:JSP主要包含指令(Directives)、脚本元素(Scripting Elements)、动作(Actions)。例如,`<jsp:include>`用于包含其他页面,`<jsp:useBean>`用于实例化JavaBean。 3. **Servlet生命周期**:...
根据提供的文件信息,本文将详细解析与JSP和Servlet相关的知识点。主要围绕JSP与Servlet的基本概念、工作原理以及在Web应用开发中的作用等方面展开。 ### JSP与Servlet概述 #### JSP(JavaServer Pages) - **定义...
2. **可移植性**:Servlet是基于Java编写的,因此具有很好的跨平台特性,可以在任何支持Java的环境中运行。 3. **安全性**:通过Servlet容器提供的安全机制,可以有效地保护服务器免受恶意攻击。 4. **生命周期管理*...
javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现(源码+数据库sql+论文+视频齐全).zip javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现(源码+数据库sql+论文+视频齐全).zip javaEE_原生Servlet...
4.2javaEE_原生Servlet_MySql企业财务管理系统设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】 4.2javaEE_原生Servlet_MySql企业财务管理系统设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】 4.2javaEE_原生...
javaEE_原生Servlet_MySql网络考试系统的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet_MySql网络考试系统的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet...
javaEE_原生Servlet_MySql塞北村镇旅游网站设计(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet_MySql塞北村镇旅游网站设计(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet_MySql...
在IT行业中,Web开发是至关重要的领域,而JSP(JavaServer Pages)、JavaBean和Servlet是构建动态Web应用的三大核心技术。本项目"(JSP+JavaBean+Servlet)"结合了这三个组件,旨在创建一个功能丰富的Web应用程序。接...
javaEE_原生Servlet_SqlServer医院管理住院系统的研究与实现(源码+数据库sql+论文+视频齐全).zip javaEE_原生Servlet_SqlServer医院管理住院系统的研究与实现(源码+数据库sql+论文+视频齐全).zip javaEE_原生Servlet...
5.1javaEE_原生Servlet_MySql物流信息网的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】 5.1javaEE_原生Servlet_MySql物流信息网的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】 5.1javaEE_原生Servlet_...
2. **Servlet技术**:Servlet是Java中用于处理HTTP请求的服务器端组件。在本项目中,Servlet负责接收用户请求,处理业务逻辑后返回响应。Servlet生命周期包括加载、实例化、初始化、服务、销毁等阶段,通过`doGet`和...
javaEE_原生Servlet_MySql酒店管理系统的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet_MySql酒店管理系统的设计与实现(源码+数据库sql+论文+视频齐全)【JAVA】.zip javaEE_原生Servlet...
2. **Servlet**: Servlet是Java EE中的核心组件,用于扩展服务器的功能,处理HTTP请求。在MVC架构中,Servlet扮演控制器(Controller)的角色,接收用户请求,调用模型进行业务处理,并将结果转发到视图进行显示。...
2. **GenericServlet类**:这是一个抽象类,实现了Servlet接口。它提供了通用的生命周期方法,如`init()`, `service()`, `destroy()`,并可以被任何Servlet继承。 3. **HttpServlet类**:GenericServlet的子类,...