1、过滤器的概念
Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。
它的基本功能是:可以拦截JSP、Servlet、静态图片文件和静态HTML文件。
在Web.Xml中的执行顺序是这样的:listener->filter->struts拦截器->servlet。
2、Web.Xml中的配置代码如下:
G160628_Web16
encodingFilter
com.zking.filter.EncodingFilter
encodingFilter
/login.do
threeFilter
com.zking.filter.ThreeFilter
threeFilter
/two.jsp
twoFilter
com.zking.filter.TwoFilter
twoFilter
/two.jsp
oneFilter
com.zking.filter.OneFilter
oneFilter
/two.jsp
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
G160628_Web16
encodingFilter
com.zking.filter.EncodingFilter
encodingFilter
/login.do
threeFilter
com.zking.filter.ThreeFilter
threeFilter
/two.jsp
twoFilter
com.zking.filter.TwoFilter
twoFilter
/two.jsp
oneFilter
com.zking.filter.OneFilter
oneFilter
/two.jsp
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
注意:在Web.Xml中filter有着严格的执行顺序,所以如果要改变顺序进行拦截的话,在Xml中需要改变mapping代码的位置
3、Filter的体系结构
Filter接口:需要实现filter,必须要自己对request和response进行强转,现在使用频率的没有HttpFilter高
HttpFilter:需要继承HttpFilter,不用自己手动对request和response进行强转。
4、字符编码过滤器
在Web.Xml中映射的url可以写上*.do,这样显示页面跳转到逻辑页面的时候就不用担心提交方式是post而频繁的去编写代码,这样提高了代码的效率。大家一定要记得写上通过“chain.doFilter(request, response);”
而且要写在最后,不然还没有进行判断就直接通过就不太好了。
今天写的比较简单,大家想要了解更加详细的可以去看看这位大神写的,地址:http://www.cnblogs.com/coderland/p/5902878.html