要想深入了解filter首先需要了解其运行机制
客户端信息-- >容器如tomcat(创建request,response对象)-->filter进行权限检查-->servlet-->javabean,dao等其他-->servlet(或jsp)-->filter-->tomcat编码转为html-->客户端
必须了解的是filter里面的三个方法destroy(), doFilter(), init()。
一、其中init()/destroy()是在容器加载/销毁时候执行。加载和销毁的时机一般是在容器tomcat开始、停止的时候或filter更新时候执行的。
二、 doFilter()里面FilterChain.doFilter(request, response)方法也和有趣。假设只有一个filter时、filter下一个执行环节是servlet,最终执行的不管是servlet还是jsp都会返回到doFilter()的FilterChain.doFilter(request, response)下面继续执行。
ex:public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain FilterChain) throws IOException, ServletException {
System.out.println("aaaaaaaaaaaaaaaaaaaaa");
FilterChain.doFilter(arg0, arg1);//-----servlet System.out.println("----");
System.out.println("fffffffffffffffffffff");
}
最总执行结果是 aaaaaaaaaaaaaaaaaaaaa
----
fffffffffffffffffffff
这样我们可以将一些权限认证、和字符编码设置(如request.setCharacterEncoding("GBK"))的问题在Filter里面执行,减少代码的重复量
filter配置
filter配置在WEBAPP\WebRoot\WEB-INF\web.xml配置在前面的filter先执行,这点和servlet不一样
ex <filter>
<filter-name>TestFilter</filter-name>
<filter-class>TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>*.do</url-pattern> //对do文件进行过滤
</filter-mapping>
三、读取配置文件中的Filter参数
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
System.out.println("encoding=="+encoding); //结果encoding=GB18030
}
web.xml文件中的Filter
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.bjsxt.cms.util.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
相关推荐
Filter过滤器(分类讨论,分类讲解) 详情请咨询,我遇上对的人
filter过滤器在java的用法,配置文件怎样写,一看就明白
SpringBoot的filter过滤器 一、过滤器的作用和概述 1.1 简述 1.2 使用场景 二、自定义过滤的两种方式 2.1 第一种方式 2.1.1 启动类增加注解@ServletComponentScan 2.1.2 定义一个filter类 2.1.3. 测试 2.2 第二种...
简单过滤器防止恶意攻击 java中的用法
配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记<filter>和<filter-mapping>; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的...
Filter过滤器的概念和使用
这是写的filter过滤器的使用,在maven项目和在springboot项目里面都能使用,并且有使用方法。
filter 过滤器 解释 MultipartHttpServletRequest表单
Filter过滤器与Interceptor拦截器有很多相似
ffmpeg filter过滤器基础实例以及全面解析,pdf版,内容丰富,便于理解
Filter过滤器1
Socket通信,封包处理, Filter过滤器处理
jsp filter 过滤器判断用户是否登录的一个demo,可按照里面说明来完成
STRUTS:filter过滤器
filter过滤器例子.
非常实用的过滤器,自己在网上找了很多资料,总结了一套切实可用的filter文档,希望能帮助你,完成你的工作
Filter(过滤器)简介和工作原理
MVC框架Filter 过滤器s
Filter过滤器的代码及其web.xml配置代码 很好的解决网页乱码问题,很方便,只要按照名字添加就可以了