要知道Servlet容器怎么工作,需要熟悉Servlet接口和(待完善)。
所有的Servlet都必须实现Servlet接口或者继承(待完善)。
Servlet接口有五个方法,分别如下:
public void init(ServletConfig config) throws ServletException;
public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException;
public void destroy();
public ServletConfig getServletConfig();
public java.lang.String getServletInfo();
在Servlet的五个方法中,init,service 和destroy方法是控制servlet生命周期的方法。
init方法,是在Servlet被Servlet容器实例化之后调用的,这个方法被调用一次预示着这个servlet要去提供服务。
在Servlet接收任何请求之前,它的初始化方法必须被成功的完成。一个Servlet程序员会覆盖这个方法,写一些初始化代码,初始化代码只需要执行一次,比如加载数据库驱动、初始化一些数值等等。在其他的一些情况下,这个方法通常都是空的。
任何时候,当有请求的时候,servlet容器会调用servlet的service方法,servlet容器转换ServletRequest对象和ServletResponse对象。ServletRequest对象包含客户端HTTP请求的信息,ServletResponse对象封装了服务器端的响应信息。在servlet的生命周期中,service方法会被调用多次。
servlet容器将一个servlet从服务中移除之前会调用该servlet的destroy方法。
这种情况通常发生在servlet容器关闭或者servlet 容器需要释放内存的时候。
这个方法只有在位于servlet的service方法中是所有线程都退出(exit),或者是已经过了一个超时的时间段。在Servlet容器调用某个Servlet的destroy方法之后,它就不会再调用该Servlet的service方法。destroy方法给了servlet容器一个释放它所持有的资源的机会,比如内容、文件、handles,还有线程,而且保证所有的持久化状态都和Servlet当前在内存中的状态是一致的。
分享到:
相关推荐
第2章 一个简单的servlet容器 7 2.1 简述 7 2.2 javax.servlet.Servlet接口 7 2.3 Application 1 7 2.3.1 HttpServer1类 8 2.3.2 Request类 8 2.3.3 Response类 9 2.3.4 StaticResourceProcessor类 9 2.3.5 ...
《深入剖析Tomcat》深入剖析Tomcat 4和Tomcat 5中的每个组件(如果TOMCAT版本有点老,不过现在的Tomcat6和7同样可以借鉴参考),并揭示其内部工作原理。通过学习《深入剖析Tomcat》,你将可以自行开发Tomcat组件,或者...
It takes a book as versatile as its subject to cover Apache Tomcat, the popular open source Servlet and JSP container and high performance web server. Tomcat: The Definitive Guide is a valuable ...
本文将深入探讨如何从零开始,基于传统模式和NIO(非阻塞I/O)模式手写一个简单的Tomcat服务器,以理解其工作原理。 首先,我们需要了解传统的BIO(阻塞I/O)模式。在BIO模式下,每个连接都需要一个单独的线程来...
String response = "<html><body>Hello, Simple Servlet Container!</body></html>"; output.write(response.getBytes()); ``` 这里,我们创建了一个简单的HTML响应,并将其写入到输出流中。实际的Servlet容器会...
Building a Simple Web Application Section 1.7. Sharing Data Among Web Applications Chapter 2. Controlling Web Application Behavior with web.xml Section 2.1. Purpose of the Deployment Descriptor ...
Building a Simple Web Application Section 1.7. Sharing Data Among Web Applications Chapter 2. Controlling Web Application Behavior with web.xml Section 2.1. Purpose of the Deployment Descriptor ...
<servlet-class>com.sun.jersey.server.impl.container.servlet.ServletContainer</servlet-class> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>your.package.name ...
27.4. Embedded Servlet Container Support 27.4.1. Servlets, Filters, and listeners Registering Servlets, Filters, and Listeners as Spring Beans 27.4.2. Servlet Context Initialization Scanning for ...
这通常包括对 Servlet 容器的配置,以及对 Drools 工作内存(Working Memory)和 KIE 容器(KIE Container)的管理。 总的来说,这个依赖包集合是为在 Tomcat 服务器上部署 Drools 7.4.1 版本的应用程序准备的,...
**XFire技术研究报告** XFire是一款历史悠久的Java Web服务框架,它主要用于构建高效...虽然现在已经被其他更现代的框架(如Apache CXF)所替代,但理解XFire的工作原理和使用方法对于理解Web服务的开发流程仍有价值。
<description>A simple Java web application. <!-- 配置环境参数 --> <param-name>db.url <param-value>jdbc:mysql://localhost:3306/mydb <!-- 定义过滤器 --> <filter-name>myFilter ...
- 如Tomcat、Jetty等,它们提供了运行Servlet和JSP的环境。 - 容器负责Servlet的加载、实例化、线程安全处理以及生命周期管理。 8. **Web Services** - Java Web Services允许不同系统间的远程通信,如SOAP...
- **redirect**:表示重定向,会发起两次请求,第二次请求与第一次完全独立,原始请求的信息(如参数)不会被传递到新的请求中。 #### 4. Web容器的概念 Web容器是实现J2EE规范中web协议的应用。它定义了web程序的...
Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method...
plexus-container-default-1.0-alpha-10.jar plexus-utils-1.2.jar poi-3.12-20150511.jar poi-ooxml-3.12-20150511.jar poi-ooxml-schemas-3.12-20150511.jar quartz-all-1.8.5.jar saaj.jar serializer-2.7.0.jar ...
- **Web服务与集成技术**:讲解Web服务的基本原理和技术栈,包括SOAP、REST等,并介绍如何利用这些技术实现系统间的集成。 - **安全性与性能优化**:提供关于如何保障J2EE应用程序的安全性以及提高其性能的具体策略...
抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承...
cxf-rt-frontend-simple-2.6.1.jar cxf-rt-transports-http-2.6.1.jar doxia-core-1.0-alpha-11.jar doxia-core-1.0.jar doxia-decoration-model-1.0-alpha-11.jar doxia-decoration-model-1.0.jar doxia-module-apt...
1.3 内嵌式Servlet容器:SpringBoot可以内嵌Tomcat、Jetty等服务器,无需额外部署WAR文件。 1.4 Actuator:提供健康检查、审计、指标收集等功能,帮助监控和管理应用。 二、SpringBoot与AWS集成 2.1 AWS SDK for ...