您的位置:首页 > 编程语言 > Java开发

Java中Filter与Servlet的区别和联系

2015-03-17 09:20 211 查看
http://blog.csdn.net/zs234/article/details/8832343

Filter
Servlet
接口
实现Filter接口
实现Servlet接口
使用步骤
1、创建类,继承接口
2、实现方法

init()

doFilter()

destroy()

3、配置WEB-INF/web.xml
1、创建类,继承接口
2、实现方法

init()

service()

destroy()

getServletConfig()

getServletInfo()
3、配置WEB-INF/web.xml
初始化时间
Servlet容器启动之后即初始化
Servlet类被调用之后初始化、先于Filter调用。
初始化可以在容器启动后被调用但需要配置。
调用顺序
1. 按照web.xml中的映射配置顺序按照配置条件从后向前调用
2. 层次调用doFilter()方法中FilterChain.doFilter()之前的内容
3. 调用Servlet中的service()方法
4. service方法执行完毕后,层次调用doFilter()中FilterChain.doFilter()之后的方法,顺序与之前的相反

按照web.xml中的映射配置顺序按照配置条件从后向前调用第一个满足条件的Servlet,调用之前事先执行满足条件的Filter,不存在层次调用Servlet问题
销毁
服务器停止后销毁,晚于Servlet销毁之后
服务器停止后销毁
作用
1. 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。
2. 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。
3. 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。
4. 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。
主要是处理客户端的请求并将其结果发送到客户端。
Filter
Servlet
接口
实现Filter接口
实现Servlet接口
使用步骤
1、创建类,继承接口
2、实现方法

init()

doFilter()

destroy()

3、配置WEB-INF/web.xml
1、创建类,继承接口
2、实现方法

init()

service()

destroy()

getServletConfig()

getServletInfo()
3、配置WEB-INF/web.xml
初始化时间
Servlet容器启动之后即初始化
Servlet类被调用之后初始化、先于Filter调用。
初始化可以在容器启动后被调用但需要配置。
调用顺序
1. 按照web.xml中的映射配置顺序按照配置条件从后向前调用
2. 层次调用doFilter()方法中FilterChain.doFilter()之前的内容
3. 调用Servlet中的service()方法
4. service方法执行完毕后,层次调用doFilter()中FilterChain.doFilter()之后的方法,顺序与之前的相反

按照web.xml中的映射配置顺序按照配置条件从后向前调用第一个满足条件的Servlet,调用之前事先执行满足条件的Filter,不存在层次调用Servlet问题
销毁
服务器停止后销毁,晚于Servlet销毁之后
服务器停止后销毁
作用
1. 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。
2. 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。
3. 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。
4. 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。
主要是处理客户端的请求并将其结果发送到客户端。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: