【java】Filter过滤器
来源:互联网 发布:ed2k下载工具 mac 编辑:程序博客网 时间:2024/06/05 01:58
一、简介
Filter也称为过滤器,是Servlet中的一项技术,可以管理Web服务器管理的一系列资源,例如jsp,html等。Servlet API中提供了一个Filter接口,在开发web应用时若需要建立过滤器类,则需要实现这个Filter接口,然后实现其doFilter方法,从而实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。
二、原理
三、建立过程
1.建立对应的包和类,这个类要实现filter接口
2.实现doFilter()方法
3.配置web.xml
四、统一设置字符集实例
实现filter接口的类:
/** * 采用filter统一设置字符集 * @author Administrator * */public class CharsetEncodingFilter implements Filter {private String encoding;@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//System.out.println("CharsetEncodingFilter---->>begin");//设置字符集request.setCharacterEncoding("GB18030");//继续执行chain.doFilter(request, response);//System.out.println("CharsetEncodingFilter---->>end");}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {this.encoding = filterConfig.getInitParameter("encoding");//System.out.println("charset="+encoding);}}web.xml的配置
<filter> <filter-name>CharsetEncodingFilter</filter-name> <filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharsetEncodingFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>五、原理解说
参考四中web.xml配置,filter-mapping中url-pattern就是针对web中的哪类文件进行拦截。上述例子是对jsp文件进行拦截,在用户访问jsp时会调用doFilter方法对jsp请求进行拦截。
init方法:容器在创建当前过滤器时自动调用
destory方法:容器销毁过滤器时调用
doFilter方法:过滤器的主要代码
四种过滤器:request过滤器、forward过滤器、include过滤器、error过滤器
在filter-mapping节点中有一个dispatcher节点,该节点分别对应上述四种过滤器的配置。
request过滤器:直接访问该目标资源才起作用
forward过滤器:对于转发的才起作用,直接访问该目标资源不起作用
include过滤器:请求包含该目标资源的请求起作用
error过滤器:访问一个不存在的页面时先被过滤器拦截再转发到对应的错误页
- java Filter-(java 过滤器)
- Java Filter过滤器使用
- Java过滤器 Filter
- java Filter过滤器
- Java深入 - Filter过滤器
- JAVA WEB FILTER(过滤器)
- Java-web Filter过滤器
- Java Filter 过滤器
- Java web----过滤器(Filter)
- Java之Filter过滤器
- java web 过滤器filter
- Java Filter过滤器简介
- 【Java】Filter过滤器
- 【Java】Filter过滤器初识
- java过滤器Filter
- java 过滤器(filter)
- Java中的Filter过滤器
- Java中的Filter过滤器
- 面向对象之接口interface
- 分区:堆分析器
- EL表达式
- CSS系列之编辑网页文本(二)
- DHAT:动态堆分析工具
- 【java】Filter过滤器
- BZOJ 2073: [POI2004]PRZ 状压动归
- Java并发编程:volatile关键字解析
- Kaggle--泰坦尼克之灾
- SGCheck:一个实验堆栈和全局数组溢出检测器
- 在Linux中使用线程
- Thinking in java-1 Initialization 初始化
- 将博客搬至CSDN
- python sys.path