JSP 的执行过程
(1) 客户端发出Request (请求);
(2) JSP Container 将JSP转译成Servlet的源代码;
(3) 将产生的Servlet 的源代码经过编译后,并加载到内存执行;
(4) 把结果Response (响应)至客户端。
在执行 JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request Time)
转译时期:JSP网页转译成Servlet类。
请求时期:Servlet类执行后,响应结果至客户端。
注:
转译期间主要做了两件事情:将JSP网页转译为 Servlet 源代码(.java),此段称为转译时期(Translation time);将Servlet源代码(.java)编译成 Servlet 类(.class),此段称为编译时期(Compilation time)。
Servlet 的生命周期
1) 产生 Servlet,加载到Servlet Engine中,然后调用 init()这个方法来进行初始化工作。
2) 以多线程的方式处理来自Client 的请求。 service()
3) 调用 destroy()来销毁Servlet,进行垃圾收集 (garbage collection)。
Servlet 从产生到结束的流程
1. 加载和实例化
当Container一开始启动, 或是客户端发出请求服务时, Container会负责加载和实例化一个Servlet。
2. 初始化
Servlet 加载并实例化后,再来Container必须初始化 Servlet。初始化的过程主要是读取配置 信息(例如JDBC连接)或其他须执行的任务。我们可以借助 ServletConfig 对象取得 Container的 配置信息,例如:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>tw.com.javaworld.CH2.HelloServlet</servlet-class>
<init-param>
<param-name>user</param-name>
<param-value>browser</param-value>
</init-param>
</servlet>
其中user为初始化的参数名称;browser 为初始化的值。因此,可以在 HelloServlet程序中使用ServletConfig 对象的getInitParameter("user")方法来取得 browser。
3. 处理请求
Servlet被初始化后,就可以开始处理请求。每一个请求由 ServletRequest 对象来接收请求;而ServletResponse对象来响应该请求。
4. 服务结束
当 Container 没有限定一个加载的 Servlet 能保存多长时间,因此,一个 Servlet 实例可能只在Container中存活几毫秒,或是其他更长的任意时间。一旦 destroy( )方法被调用时,Container将移除该 Servlet,那么它必须释放所有使用中的任何资源,若 Container 需要再使用该 Servlet时,它必须重新建立新的实例。
分享到:
相关推荐
1. **Servlet生命周期:** - **加载与实例化**:Servlet容器(如Tomcat)加载Servlet类并创建一个Servlet实例。 - **初始化**:调用Servlet的`init()`方法,进行初始化操作,如设置配置参数。 - **服务**:每次...
Servlet的生命周期包括加载、实例化、初始化、服务和销毁等阶段,它们是Web应用程序的核心组件。 **JavaScript**是一种轻量级的解释型编程语言,主要用于客户端的网页脚本。它允许在浏览器中执行代码,实现网页的...
**Servlet生命周期:** 1. **加载与实例化**:当首次请求到达时,Servlet容器加载Servlet类并创建一个Servlet实例。 2. **初始化**:Servlet实例调用`init()`方法进行初始化,可以配置初始化参数。 3. **服务**:...
### SERVLET生命周期与JSP生命周期比较 #### 一、引言 在现代Web开发中,Servlet和JSP是两种非常重要的技术,它们都属于Java EE平台的一部分,主要用于构建动态Web应用程序。这两种技术各有特点,但又紧密相关,...
同时,本章节还介绍了JSP的生命周期、JSP的编译和执行过程等。 在第二章中,本笔记讨论了Servlet的基本概念,包括Servlet的定义、Servlet的生命周期、Servlet的请求和响应等。此外,本章节还介绍了Servlet的多线程...
Servlet API包括了如`javax.servlet.Servlet`、`javax.servlet.http.HttpServlet`等接口和类,用于实现Servlet生命周期的方法,如`init()`、`service()`和`destroy()`。 这四个库在Java Web开发中协同工作,为...
Servlet生命周期通常包含以下几个阶段:加载和实例化Servlet、初始化、处理请求以及销毁。首先,当首次请求时,Servlet容器会加载Servlet类,创建一个Servlet实例,然后调用init()方法进行初始化。初始化完成后,...
在本书中,读者会学习到Servlet的生命周期、服务方法、多线程处理、Servlet配置以及Servlet容器的工作原理。此外,书中还会介绍如何使用Filter和Listener来增强应用程序的功能,比如日志记录、会话管理等。 在JSP与...
2. **Servlet生命周期**:`init()`方法初始化Servlet,`service()`方法处理请求,`destroy()`方法在Servlet卸载前调用。 3. **转发与重定向**:`RequestDispatcher`的`forward()`方法在服务器内部转发请求,而`...
2. Servlet生命周期:包括加载和初始化、服务和销毁。 3. JSP隐含对象的使用,如`request`、`response`、`session`和`application`。 4. JavaBean的属性和方法如何与HTML表单元素绑定。 5. 使用MVC(模型-视图-控制...
2. **生命周期管理**:同JSP一样,Servlet也有其生命周期,包括初始化、服务和销毁三个阶段。 3. **线程安全**:Servlet被设计为线程安全的,这意味着单个实例可以同时处理多个客户端请求。 4. **配置灵活**:...
Servlet生命周期包括加载、初始化、服务、销毁四个阶段。 1. **Servlet生命周期** - **加载与实例化**:当服务器启动或首次接收到对Servlet的请求时,会加载Servlet类并创建一个实例。 - **初始化**:调用`init()...
在《Head First Servlet & JSP》中,你会了解到如何创建Servlet,包括Servlet生命周期、服务方法、初始化参数、会话管理以及如何在Servlet间进行协作。 JSP则是另一种用于生成动态网页的技术,它将HTML模板与Java...
Servlet生命周期包括加载、初始化、服务、销毁四个阶段,而doGet和doPost方法是处理HTTP请求的主要方法。理解Servlet原理和使用是Web开发的基础。 3. **JSP与Servlet协同工作**: 在实际项目中,JSP通常用于视图...
**Servlet生命周期** Servlet的生命周期可以分为三个主要阶段:初始化、服务和销毁。 1. **初始化阶段**: - 当Servlet首次被请求或者在web应用启动时,容器(如Tomcat)会加载Servlet类,并调用`init()`方法进行...
- **Servlet生命周期**:包括加载、实例化、初始化、服务、销毁五个阶段。 - **Servlet API**:提供了诸如`HttpServlet`类,开发者通过继承此类来处理HTTP请求和响应。 - **Servlet配置**:在`web.xml`文件中定义...
- **Servlet生命周期**:初始化、服务、销毁三个阶段,以及`init()`, `service()`, `destroy()`等方法。 - **Servlet API**:`HttpServlet`类的继承,以及`doGet()`和`doPost()`方法用于处理HTTP请求。 - **...