zoukankan
html css js c++ java
javaWeb-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实现的。
查看全文
相关阅读:
公用表表达式(CTE)的递归调用
c# 如何让tooltip显示文字换行
实战 SQL Server 2008 数据库误删除数据的恢复
SQL SERVER数据库中 是否可以对视图进行修改删除
asp.net中实现文件批量上传
sql server 2008学习2 文件和文件组
sql server 2008学习3 表组织和索引组织
sql server 2008学习4 设计索引的建议
sql server 2008学习10 存储过程
.net 调用 sql server 自定义函数,并输出返回值
原文地址:https://www.cnblogs.com/fxw-666/p/8601664.html
最新文章
你是一个优秀的IT PRO吗?(下篇)
select 和 poll 函数
关于开源无线路由器的资料
select函数测试
C语言中局部变量和全局变量 变量的存储类别
如何做不浮躁的人
IT PRO的知识结构
什么代码是有价值的?
网络各层设备
sql server 2008学习1–系统数据库
热门文章
sql server 2008学习6 更复杂的查询
sql server 2008学习9 视图
HTTP 错误 404.3 Not Found
sql server 2008学习5 sql基础
走向DBA[MSSQL篇] 从SQL语句的角度提高数据库的访问性能
在SQL SERVER中实现Split功能的函数,并在存储过程中使用
sql server 2008学习9 编写脚本和批处理
windows2008下配置iis时出现错误“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。”
windows2008下 IIS7 HTTP 错误 404.2 Not Found 解决方法(图文)
HTTP 错误 404.2 Not Found
Copyright © 2011-2022 走看看