Servlet概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet概念相关的知识,希望对你有一定的参考价值。

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求与服务器响应的中间层。 
           Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载。

 

Servlet 接口的方法(Servlet 的生命周期)
(1) 加载和实例化  
Servlet 容器装载和实例化一个 Servlet。创建出该 Servlet 类的一个实例。
(2) 初始化       void init(ServletConfig config)
在 Servlet 实例化完成之后,容器负责调用该 Servlet 实例的 init() 方法,在处理用户请求之前,来做一些额外的初始化工作。
(3) 处理请求     void service(ServletRequest req,ServletResPonse res)
由 Servlet 容器调用,运行与请求对应的 Servlet 实例的 service() 方法,service() 方法再派遣运行与请求相对应的 doXX(doGet,doPost) 
(4) 销毁         void destroy()
当 Servlet 容器决定将一个 Servlet 从服务器中移除时 ( 如 Servlet 文件被更新 ),便调用该 Servlet 实例的 destroy() 方法.
其中,(1)(2)(4) 在 Servlet 的整个生命周期中只会被执行一次。


Servlet 接口中还有:(ServletConfig与ServletContext的区别)
ServletConfig getServletConfig()方法返回一个ServletConfig对象(是init()的参数),该对象中包含servlet启动配置信息.这个信息中包括了所有初始化参数和一个ServletContext对象. 
注:getServletContext()返回一个ServletContext对象,该对象包含关于servlet运行环境的信息.
      String getServletInfo() : 返回有关Servlet的信息


JSP的本质即使一个Servlet
当浏览器向服务器请求 JSP 页面时,服务器收到该请求后,首先检查所请求的这个JSP 文件内容是否已经被更新,或者是否是 JSP 创建后的第一次被访问,如果是,那么,这个 JSP 文件就会在服务器端的 JSP 引擎作用下转化为一个 Servlet 类的 Java 源代码文件。紧接着,这个 Servlet 类会在 Java 编译器的作用下被编译成一个字节码文件,并装载到 jvm 解释执行。剩下的就等同于 Servlet 的处理过程了。
如果被请求的 JSP 文件内容没有被修改,那么由服务器检索出与之对应的 Servlet 实例来处理。
注:就 Tomcat 而言,打开目录 %Tomcat%/work/%您的工程文件目录%,然后会看到里面有 3个子目录:org/apache/jsp,若没有这 3 个目录,说明项目的 JSP 文件还没有被访问过,打开进到 jsp 目录下,会看到一些 *_jsp.java 和 *_jsp.class 文件,这就是 JSP 文件被转换成Servlet 类的源文件和字节码文件了。


下面为 jsp 与 Servlet 工作流程图:

技术分享技术分享


以上是关于Servlet概念的主要内容,如果未能解决你的问题,请参考以下文章

引入servlet概念

Servlet学习之Servlet概念与运行流程

Servlet基本概念及其部署

简述Servlet的基本概念

Servlet概念

Servlet概念