zoukankan
html css js c++ java
web后台
当Web服务器接收到一个HTTP请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端。
针对同一个Servlet,Servlet容器会在第一次收到http请求时建立一个Servlet实例,然后启动一个线程。第二次收到http请求时,Servlet容器无须建立相同的Servlet实例,而是启动第二个线程来服务客户端请求。所以多线程方式不但可以提高Web应用程序的执行效率,也可以降低Web服务器的系统负担。
下图粗暴解释了请求到容器流程
下图解释了请求到容器到servlet周期流程
文字解说:
1.客户发出请求—>Web 服务器转发到Web容器Tomcat;
2.Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
3.从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把步骤2创建的两个对象传递给该线程;
4.Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5.假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
Servlet线程结束时:Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。
注意:
1.
创建Servlet对象的时机:
Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。
Servlet Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。
2.
在Servlet接口和GenericServlet中是没有doGet()、doPost()等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。我们经常使用的httpServlet是继承于GenericServlet实现的。
查看全文
相关阅读:
verilog 基础知识
excel函数提取身份证出生日期,分离日期时间的日期和时间
excel函数提取内容中的汉字
excel匹配函数vlookup和lookup
excel计数函数COUNTIF、COUNTIFS
excel函数sum、sumif和sumifs
excel替换函数substitute
excel判断数据是否存在另一列中
python用random模块模拟抽奖逻辑(print修改end参数使打印结果不分行)
excel用函数去掉单元格内容中的括号,并只保留单元格里面的内容
原文地址:https://www.cnblogs.com/z--z/p/8854141.html
最新文章
MySQL greatest()和least()函数与MAX()和MIN()函数
H5前端学习之路第1天--css预处理器
mpvue小程序 上拉菜单
mpvue 小程序应用拖动排序
react native (2) 嵌入h5页面 设置顶部导航
react native (1) 新建页面并跳转
mpvue小程序 自定义底部导航栏
mpvue小程序 腾讯地图定位获取到地理位置
mpvue小程序 改变其它页面的数据
mpvue小程序
热门文章
小程序(1)
verilog常见错误列表
python 不常见函数
同步状态机——三段式状态机
verilog问题二三
移位器及移位寄存器
阻塞赋值与非阻塞复制在同步时序逻辑与异步时序逻辑中的使用
ASM与ASMD
pytroch中cp27m和cp27mu的区别及判别方法
HDL的三种描述方式
Copyright © 2011-2022 走看看