A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XuZhenXiang 初级黑马   /  2019-1-16 15:30  /  866 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. Servlet 的 生命周期 和 执行流程

1.1 Servlet 的执行流程

1. 客户端发送请求 (以 GET 或者 Post 方式发送请求 )

超链接 :
<a href="servlet/HelloServlet"/>
或者
表单形式 :
<form name="regForm" action="servlet/HellServlet" method="post">

2.
在web.xml中找到
<servlet-mapping><servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern></servlet-mapping>
(第一条中的请求路径对应的就是url-pattern中的请求路径)

3. 同样是 在 web.xml 文件中 寻找

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>

2 和 3 的 servlet- name 相同 我们根据 name 找到 servlet-class Servlet 对应的类

4. 根据servlet-class 找到对应的类 根据请求方式 确定调用 doGet() 或者 doPost() 方法

1.2 Servlet 生命周期

1. 客户端发送 请求后首先判断 是否存在Servet 实例 如果没有 首先创建 Servlet 的实例(调用Servlet的构造方法)
2. 如果 存在 Serlvet 实例 则开始他的初始化阶段 执行初始化方法 ( init() 方法)
3. 第三阶段 是 响应 客户端的 请求 调用Service() 方法 根据请求方式选择执行 doGet() 或者 doPost()方法
4. 最后阶段是 销毁阶段 程序结束 或者 服务器停止 调用他的 销毁方法 destroy()方法 。


Filter 的 生命周期和执行流程

1. Filter 的执行流程

当 WEB 容器接收到一个 客户端的请求时 他就会判断 是否有 过滤器 和 这个资源 相关联 (这是一个自动的过程) 如果有 那么容器会将 请求交给过滤器进行处理 在过滤器中 你可以改变请求的内容
或者重新设置请求的报头信息 然后 将请求 发送给目标资源 当目标资源 对请求做出 响应时候 容器同样会将响应先转发给 过滤器 在过滤中 你可以将响应做出转换 然后再将响应发送给客户端

2. Filter 的生命周期

当服务器启动时 web应用加载后 立即创建这个 web 应用中 的 所有过滤器 过滤器得到创建出来后立即调用 init ()方法执行初始化的操作

创建出来后一直驻留在内存中为后续的拦截进行服务 每次拦截请求都会导致 doFilter 方法执行

在服务器关闭后 或者 web应用 被移除 容器时 随着 WEB 应用的销毁 过滤器对象销毁 销毁之后执行 destory方法 进行完善工作

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马