过滤器(Fileter)执行流程
2015-11-03 18:29
211 查看
Servlet过滤器的概念:
Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改
Servlet过滤器并不会生成request和response对象,它只起到过滤的作用
Servlet过滤器会在请求还未到Servlet之前检查request对象,修改 Request Header 和 Request 内容;在Servlet被调用后检查Response对象,修改 Response Header 和 Response 内容
Servlet过滤器可以过滤 Servlet , JSP , HTML 等web组件(JSP最终也是转换为Servlet的)
定义一个Servlet过滤器(Fileter)
要想让一个类成为过滤器类,必须
实现 java.servlet.Filter接口
实现三个方法:
- - 完成实际的过滤操作 这个方法得到调用后,里面重要的一点是要调用
对web.xml文件进行配置 (以下配置信息要在Servlet程序的配置信息之前):
[html] view
plaincopy
<span style="font-size:18px;"> <filter>
<filter-name>FilterServlet2</filter-name>
<filter-class>com.servlet.filter.FilterServlet2</filter-class>
<init-param>
<param-name>hello</param-name>
<param-value>123</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterServlet2</filter-name>
<url-pattern>/InfoServlet</url-pattern>
</filter-mapping></span>
<url-pattern>/InfoServlet</url-pattern>
/InfoServlet 是过滤路径,而不是通过地址栏访问的,不像Servlet程序那样
Servlet过滤器(Fileter)执行流程
Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改
Servlet过滤器并不会生成request和response对象,它只起到过滤的作用
Servlet过滤器会在请求还未到Servlet之前检查request对象,修改 Request Header 和 Request 内容;在Servlet被调用后检查Response对象,修改 Response Header 和 Response 内容
Servlet过滤器可以过滤 Servlet , JSP , HTML 等web组件(JSP最终也是转换为Servlet的)
定义一个Servlet过滤器(Fileter)
要想让一个类成为过滤器类,必须
实现 java.servlet.Filter接口
实现三个方法:
init(FilterConfig filterConfig) - - -初始化 在Servlet容器创建过滤器实例的时候就会调用该方法(也就是服务器刚启动时会创建实例,该方法得到调用) , 这个方法可以读取web.xml文件中Servlet过滤器的初始化参数
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)-
- - 完成实际的过滤操作 这个方法得到调用后,里面重要的一点是要调用
chain.doFilter(request,response)方法,来完成对下一个过滤器
doFilter(
ServletRequest request,ServletResponse response,FilterChain chain))方法的调用,如果没有下一个过滤器,则把客户请求传给相应的web组件
destroy() - - -过滤器销毁阶段Servlet容器在销毁过滤器实例之前该方法得到调用,以释放占用的资源
对web.xml文件进行配置 (以下配置信息要在Servlet程序的配置信息之前):
[html] view
plaincopy
<span style="font-size:18px;"> <filter>
<filter-name>FilterServlet2</filter-name>
<filter-class>com.servlet.filter.FilterServlet2</filter-class>
<init-param>
<param-name>hello</param-name>
<param-value>123</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterServlet2</filter-name>
<url-pattern>/InfoServlet</url-pattern>
</filter-mapping></span>
<url-pattern>/InfoServlet</url-pattern>
/InfoServlet 是过滤路径,而不是通过地址栏访问的,不像Servlet程序那样
Servlet过滤器(Fileter)执行流程
相关文章推荐
- golang使用graphviz
- 快速学习使用springmvc、strust2、strust1以及它们的对比
- java中volatile关键字的含义
- 前端组件化框架之路
- struts1.3执行流分析
- jsp 笔记
- java FileWriter和BufferedWriter区别和用法
- Lucene4.4与IKAnalyzer冲突
- Cocos2d-x Ease加速度
- mybatis 返回map 一个项目使用另一个项目表中的三列数据
- FFmpeg在iOS上完美编译
- java this和super关键字
- 设置label.text的行间距
- [python 补充] _winreg
- github视频录制播放相关功能-参考
- sdi 采集卡---环视频拼接直播方案
- [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- JAVA编程训练——Game:scissor, rock, paper
- Ajax异步登录判断用户名密码的合法性
- Redis简介(1)