spring filter

来源:互联网 发布:微信附近人定位软件 编辑:程序博客网 时间:2024/04/29 22:44

自己的感想,记录一下,如有错误,望指正~~~~~~~~

 

通过过滤器,我们可以获得请求信息,然后根据请求信息自己进行修改,或者在安全性中根据请求判断用户权限。

比如我们会在编码转换,security,http请求方法转换(post->delete,post->put)等等。

 

在spring中:

 

       我们在开发web项目时,都会用到服务器,比如apache。在apache启动来以后,对匹配的url请求,都会执行相应的filter。

 

FilterChain链:

       如果在web.xml中有多个自己写的filter,那么filter的执行顺序是按照从上到下的配置顺序来执行的。那么怎么才能知道一个filter执行完以后继续执行下一个呢?

       FilterChain在这里就起作用了。filterchain就相当于一个链表,通过调用方法,去执行下一个。

如下的arg2.doFilter():

 

package co.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class FilterTest implements Filter{@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {// TODO Auto-generated method stubSystem.out.println("sss");arg2.doFilter(arg0,arg1);}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}

如果在自己写filter时,后面的filter不能执行,或许会是前面的filter没写这句话造成的。

 

每天了解一点点,你会…………………………

原创粉丝点击