Servlet工作原理
Servlet工作原理
Servlet是运行在Servlet容器中的,由Servlet容器来负责,Servlet实例的查找、创建及整个生命周期的管理。
Servlet生命周期:
类装载及实例的创建阶段:
默认情况下,servlet实例是在接受第一次请求时进行创建并且以后的请求进行复用(单例),如果servlet需要进行一些复杂的操作,需在初始化时就完成eg:打开文件、初始化网络连接,可以配置在服务器启动时便创建实例,具体配置方法为在声明servlet标签中添加
<load-on-satrtup>/</load-on-startup>
标签。初始化init(ServletConfig)
一旦Servlet实例被创建,将会调用Servlet的init方法,同事传入ServletConfig实例,传入Servlet的相关配置信息,init方法在整个Servlet声明周期中只会被调用一次。服务Service(HttpServletRequest request HttpServletResponse response)
为提高效率,Servlet规范要求一个Servlet实例必须能同时服务于多个客户端请求,即Service()方法运行在多线程的环境下(每一个请求在Servlet容器中都会产生一个线程来调用Service方法,但需要注意每个线程也共享Servlet对象的成员变量),Servlet开发者必须保证该方法的线程是安全的。另外HttpServletRequest对象封装的事用户请求的信息,此对象其他相应的方法获取封装的信息,用此对象可获得用户提交的信息,HttpServletResponse对象是用来响应用户的请求,用此对象可获得用户想要得到的信息。销毁destory()
服务器关闭时会调用destory方法,销毁Servlet实例。当Servlet容器将决定结束某个Servlet时,将会调用destory()方法,在destory方法中释放资源,一旦destory方法被调用Servlet容器将不会再发送任何请求给这个实例,若Servlet容器再次使用该Servlet实例,需要重新实例化该Servlet实例。
Servlet执行流程
Web服务器接到HTTP请求后,Web服务器将请求移交给Servlet容
器,Servlet容器首先对所请求的URL进行解析并根据Web.xml配置
文件找到相应的处理Servlet,同事将request、response对象传递给
它,Servlet通过request对象可知道客户端的请求者请求信息以及
其他的信息等,Servlet在处理完请求后会把所有需返回的信息放入
response对象中并返回到客户端,Servlet一旦处理完请求,Servlet
容器会刷新response对象,并把控制权重新返回给Web服务器。
创建Servlet的时机.
1.Servlet容器启动时,读取Web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象init方法。
2. 在Servlet容器启动后,客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,若没有则根据客户的请求创建HttpRequest、HttpReponse对象,从而调用Servlet对象的Service方法。
3. Servlet容器在启动时创建的Servlet是由在Web.xml文件中为 Servlet 设置的<load-on startup>
属性决定的,同一类型的Servlet对象在Servlet容器中以单例的形式存在。
<Servlet><servlet-name>init</servlet-name><servlet-class>org.xl.servlet.Intservlet</servlet-class><load-on-satrtup>/</load-on-startup>
</Servlet>
Servlet与JSP比较
它们有很多相似之处,都可以生成动态网页
1.JSP优点是:擅长网页制作,生成动态页面比较直观;
缺点:不容易跟踪与拍错;
2.Servlet是纯Java语言,擅长处理流程和业务逻辑;
缺点:生成动态网页不直观;
3.Servlet运行速度比CGI快,因为使用了多线程;
4.Servlet使用了标准的api,可被许多web服务支持;
5.Servlet与系统无关,一次编译多次使用,也正是Java的特性;
Tomcat与Servlet如何工作的
1.Web Client 向Servlet容器发出Http请求;
2.Servlet容器接收Web Client 的请求;
3.Servlet容器创建一个Http Request对象,将Web Client请求信息封装到这个对象中;
4.Servlet容器创建一个HttpResponse对象;
5.Servlet容器调用HttpServlet对象的Service方法,把HttpRequest对象与HttpResponse对象作为参数传给HttpServlet对象;
6.HttpServlet调用HttpRequest对象相关方法获取Http请求信息;
7.HttpServlet调用HttpResponse对象的相关方法生成响应数据;
8.Servlet容器把HttpServlet的响应结果传给WebClient;
Servlet工作原理相关推荐
- servlet工作原理_Servlet 生命周期、工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...
- JSP+JavaBean+Servlet工作原理实例…
JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...
- Tomcat Servlet 工作原理
文章目录 Tomcat Servlet 工作原理 Servlet Tomcat解析Context容器过程及如何构建Servlet Servlet容器启动过程 Web应用初始化工作 创建Servlet实 ...
- Servlet系列学习笔记1 --- Servlet工作原理和生命周期
目录 一.Servlet API概述 二.Servlet工作原理 三.Servlet接口 四.Servlet的生命周期 五.ServletRequest 六.ServletResponse Servl ...
- Servlet 工作原理解析
2019独角兽企业重金招聘Python工程师标准>>> 从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servle ...
- JSP/Servlet 工作原理
Servlet Servlet Servlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器. Servlet 运行在 Ser ...
- 【Java】Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- Servlet 工作原理解析--转载
原文:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html?ca=drs- Web 技术成为当今主流的互联网 Web 应用 ...
- 超详细 Servlet工作原理解析
Web技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet的工作原理是成为一名合格的 Java Web 技术开发人员的基本 ...
- Servlet学习笔记-Servlet工作原理和过程
1.前言 Java Servlet技术简称Servlet技术,是Java开发Web应用的底层技术.由Sun公司于1996年发布,用来代替CGI--当时生成Web动态内容的主流技术.官方文档对Ser ...
最新文章
- 读javascript高级程序设计11-事件
- Ajax表单提交给C#后台选中的checkbox值
- wasm + ffmpeg实现前端截取视频帧功能
- Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
- 使用Domain-Protect保护你的网站抵御子域名接管攻击
- 从基础开始:Qomo OpenProject中的一些关键词
- JavaParser生成,分析和修改Java代码
- 计算机网络基础 第4章 龚娟,计算机网络基础 人民邮电 龚娟 第4章习题答案
- 指针与零的比较以及浮点型与零的比较
- 安装oracle 11g时,报启动服务出现错误,找不到OracleMTSRecoveryService的解决方法
- java 工具箱安装方法,Java工具包的安装配置和使用-JSP教程,Java技巧及代码
- Linux系统安装Redis
- 青县计算机学校,青县将建设新学校(中小学各一所)今年3月开工,明年即可完工!...
- 苹果手机升级13无法开机_苹果手机更新系统后无法开机
- WOW!Illustrator CS6完全自学宝典pdf
- UNITY TMP PRO 字体制作
- gc计算机术语,GC是什么意思?
- 网络聊天室(群发助手)—— C++
- Matlab实现时间序列预测
- Largest Rectangle in a Histogram 题解 Python