`

JSP/Servlet 工作原理

阅读更多
Servlet
Servlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器。
Servlet 运行在 Servlet 容器中,并由容器管理从创建到销毁的整个过程。
Servlet 的生命周期
(1) 加载和实例化
Servlet 容器装载和实例化一个 Servlet。创建出该 Servlet 类的一个实例。
(2) 初始化
在 Servlet 实例化完成之后,容器负责调用该 Servlet 实例的 init() 方法,在处理用户请求之前,来做一些额外的初始化工作。
(3) 处理请求
当 Servlet 容器接收到一个 Servlet 请求时,便运行与之对应的 Servlet 实例的 service() 方法,service() 方法再派遣运行与请求相对应的
doXX(doGet,doPost) 方法来处理用户请求。
(4) 销毁
当 Servlet 容器决定将一个 Servlet 从服务器中移除时 ( 如 Servlet 文件被更新 ),便调用该 Servlet 实例的 destroy() 方法,在销毁该 Servlet 实例之前,
来做一些其他的工作。
其中,(1)(2)(4) 在 Servlet 的整个生命周期中只会被执行一次。
Servlet 的工作原理
结合右边给出的流程图:
当客户端浏览器向服务器请求一个 Servlet 时,服务器收到该请求后,首先到容器中检索与请求
匹配的 Servlet 实例是否已经存在。若不存在,则 Servlet 容器负责加载并实例化出该类 Servlet
的一个实例对象,接着容器框架负责调用该实例的 init() 方法来对实例做一些初始化工作,然后
Servlet 容器运行该实例的 service() 方法。
若 Servlet 实例已经存在,则容器框架直接调用该实例的 service() 方法。
service() 方法在运行时,自动派遣运行与用户请求相对应的 doXX() 方法来响应用户发起的请求。
通常,每个 Servlet 类在容器中只存在一个实例,每当请求到来时,则分配一条线程来处理该请求。








JSP 工作原理
结合右边给出的流程图:
当客户端浏览器向服务器请求一个 JSP 页面时,服务器收到该请求后,首先检查所请求的这个
JSP 文件内容 ( 代码 ) 是否已经被更新,或者是否是 JSP 文件创建后的第一次被访问,如果是,
那么,这个 JSP 文件就会在服务器端的 JSP 引擎作用下转化为一个 Servlet 类的 Java 源代码
文件。紧接着,这个 Servlet 类会在 Java 编译器的作用下被编译成一个字节码文件,并装载
到 jvm 解释执行。剩下的就等同于 Servlet 的处理过程了。
如果被请求的 JSP 文件内容 ( 代码 ) 没有被修改,那么它的处理过程也等同于一个 Servlet 的
处理过程。即直接由服务器检索出与之对应的 Servlet 实例来处理。

需要注意的是,JSP 文件不是在服务器启动的时候转换成 Servlet 类的。而是在被客户端访问
的时候才可能发生转换的 ( 如 JSP 文件内容没有被更新等,就不再发生 Servlet 转换 )。
就 Tomcat 而言,打开目录 %Tomcat%/work/%您的工程文件目录%,然后会看到里面有 3
个子目录:org/apache/jsp,若没有这 3 个目录,说明项目的 JSP 文件还没有被访问过,
打开进到 jsp 目录下,会看到一些 *_jsp.java 和 *_jsp.class 文件,这就是 JSP 文件被转换成
Servlet 类的源文件和字节码文件了。
有兴趣的话,可以使用浏览器访问服务器中的 JSP,然后观察 JSP 转换 Servlet 以及编译的时机。
Servlet 与 JSP
JSP 本质是一个 Servlet,它的运行也需要容器的支持。
在 JSP 和 Servlet 文件中都可以编写 Java 和 HTML 代码,不同的是,
Servlet 虽然也可以动态的生成页面内容,但更加偏向于逻辑的控制。
JSP 最终被转换成 Servlet 在 jvm 中解释执行,在 JSP 中虽然也可以编写 Java 代码,但它更加偏向于页面视图的展现。
在 MVC 架构模式中,就 JSP 和 Servlet 而言,C 通常由 Servlet 充当,V 通常由 JSP 来充当。

分享到:
评论

相关推荐

    ACCP 6.0 S2-5-使用JSP/Servlet/Ajax技术开发新闻发布系统 PPT课件

    2. Servlet入门:讲解Servlet的工作原理、生命周期以及如何编写Servlet类。 3. JSP与Servlet协作:展示如何在JSP中调用Servlet,以及Servlet如何向JSP传递数据。 4. 数据库连接与操作:介绍如何使用JDBC进行数据库...

    JSP/Servlet 数据库分页 原理 解析 下载

    JSP/Servlet数据库分页原理解析源码下载,注释详尽、简单易懂 将下载后的压缩文件解压后可以得到page_csdn文件夹,用eclipse导入即可,运行之前请运行page.sql数据库脚本,我使用的是MySQL数据库。 部署到Tomcat...

    jsp/servlet blog

    理解JSP和Servlet的协同工作原理是构建Web应用的关键。通过它们,开发者可以构建出功能丰富且可扩展性强的动态网站,而“jsp/servlet blog”项目就是一个很好的实践示例。在实际项目中,还需要考虑安全性、性能优化...

    ASP转JSP/SERVLET

    - 学习并理解Servlet和JSP的工作原理,以便更好地移植和优化代码。 - 利用工具或框架自动化部分转换工作,如使用开源的ASP转JSP工具。 6. **注意事项** - 转换过程中要考虑兼容性和测试,确保新系统在不同浏览器...

    xiaoming_Jsp/Servlet_

    开发者需要深入理解JSP和Servlet的工作原理,熟悉HTTP协议,掌握JavaScript和CSS等前端技术,同时还需要了解网络安全和支付行业的标准实践。这样的项目有助于提升开发者全面的Web开发技能,并且对实际工作场景有很好...

    bbs.rar_JSP servlet BBS_bbs_bbs jsp_jsp bbs_jsp/servlet BBS

    4. **MVC设计模式**:可能用到Model-View-Controller架构,理解其工作原理和优点。 5. **会话管理**:学习如何使用Cookie和Session来跟踪用户状态。 6. **数据库操作**:可能涉及到SQL查询,如何使用JDBC(Java ...

    jsp/servlet实现的旅游管理系统

    《基于JSP/SERVLET实现的旅游管理系统详解》 在当今信息化社会,旅游管理系统作为旅游业的重要组成部分,已经广泛应用于各类旅行社、酒店预订、景点管理等多个领域。本系统以JSP(JavaServer Pages)和Servlet技术...

    ACCP5.0Y2(开发基于JSP/servlet/javabean的网上交易系统)

    2. Servlet原理:生命周期、服务方法、请求和响应对象、会话管理等。 3. JavaBean规范:属性、getter/setter方法、序列化、事件监听器等。 4. MVC(Model-View-Controller)设计模式:理解如何在JSP/Servlet/...

    jsp/servlet个人学习笔记

    学习 JSP 和 Servlet 要注重理论与实践相结合,不仅要理解它们的工作原理,还要通过编写实际项目来提升技能。同时,不断关注新技术,如 Spring Boot 和微服务架构,这将有助于你更好地适应 Java Web 开发的未来趋势...

    基于 JSP/Servlet 的头像设置功能实现

    在IT行业中,构建一个基于JSP/Servlet的头像设置功能是常见的Web开发任务,尤其在用户中心或者社交网络应用中。本资源提供了一个实际的头像设置功能实现的源码,利用了JSP(JavaServer Pages)、Servlet以及AJAX...

    jsp/servlet开发的bbs论坛

    以下将详细介绍这个基于jsp/servlet的BBS论坛的组成部分及其工作原理。 一、MVC模式解析 MVC模式是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。在BBS...

    JavaServlet_JSP.zip_Java Servlet JSP_Jsp/Servlet

    Java Servlet和JSP(JavaServer Pages)是Java Web开发中的两个核心技术,用于构建动态网站和Web应用程序。这个压缩包“JavaServlet_JSP.zip”显然包含了关于这两者的学习资料,特别是“0596005725.chm”文件,可能...

    基于MVC设计模式构筑JSPServlet+EJB的Web应用

    本文主要介绍基于MVC(Model-View-Controller)设计模式构建JSP/Servlet+EJB的Web应用,并讨论相关的技术和设计原理。 #### MVC设计模式简介 MVC设计模式是一种广泛应用于用户界面设计中的软件架构模式。该模式将...

    JSPServlet技术在管理信息系统中的应用.pdf

    ### JSPServlet技术在管理信息系统中的应用:深入解析与实践 #### 一、JSPServlet技术概述 JSPServlet技术是JavaServer Pages (JSP) 和 Servlet 的组合使用,为Web应用程序开发提供了强大的支持。JSP是一种动态...

    jsp/servlet/javabean 分页源码

    在Java Web开发中,`jsp/servlet/javabean` 是一种经典的MVC(Model-View-Controller)架构模式,常用于...这对于理解Web应用程序的生命周期和工作原理至关重要。在实际开发中,这样的技能是构建大型复杂系统的基础。

    JSP/Servlet 数据库 分页 原理 解析 下载

    数据库分页原理解析源码下载,注释清楚、简单易懂 将下载后的压缩文件解压后可以得到page_csdn文件夹,用eclipse导入即可,运行之前请运行page.sql数据库脚本,我使用的是MySQL数据库。 部署到Tomcat服务器后,...

    使用JSP/Servlet技术开发新闻发布系统.zip

    【PPT课件】:这些课件会详细介绍JSP和Servlet的基础知识,包括它们的工作原理、生命周期、API使用等,同时也会讲解如何在实际项目中整合这两个技术。 【上机实践】:这部分内容让学员有机会动手实践,通过编写代码...

    本科生/大学 JSP/servlet考试

    4. **分析题**:分析JSP或Servlet代码,解释其工作原理或找出潜在问题。 **学习JSP和Servlet不仅需要理解基本概念,还要熟练掌握它们的使用,以及如何与数据库、会话管理、过滤器、监听器等其他Web组件协同工作。...

    ACCP6.0S2jsp/Servlet/Ajax

    2. **工作原理**:JSP页面在服务器上被编译为Java Servlet,然后执行生成HTML响应,返回给客户端浏览器。 3. **元素**:JSP包含指令(Directives)、脚本元素(Scriptlets)、表达式(Expressions)和声明...

    JavaBean/JSP/Servlet 的商品数据库增删改查

    JavaBean、JSP(JavaServer Pages)和Servlet是Java Web开发中的核心技术,它们共同构建了动态网站...通过实际操作,开发者可以深入理解JavaBean、JSP和Servlet的工作原理,以及如何结合它们来实现一个完整的Web应用。

Global site tag (gtag.js) - Google Analytics