
概念过滤器JavaWeb三大组件之一它与Servlet很相似过滤器是用来拦截请求的而不是处理请求的。当用户请求某个Servlet时会先执行部署在这个请求上的Filter如果Filter“放行”那么会继承执行用户请求的Servlet如果Filter不“放行”那么就不会执行用户请求的Servlet。其实可以这样理解当用户请求某个Servlet时Tomcat会去执行注册在这个请求上的Filter然后是否“放行”由Filter来决定。可以理解为Filter来决定是否调用Servlet当执行完成Servlet的代码后还会执行Filter后面的代码。创建过滤器在项目src下创建一个类自己命名创建一个javaweb项目然后创建一个servlet的前提下)实现Filter接口接口必须实现重写里面的doFilter方法必须重写这个方法。如图所示在doFilter方法里面有这个代码filterChain.doFilter(servletRequest,servletResponse);这个代码什么意思呢是让过滤器允许放行的意思如果没有这个代码过滤器就不会放行然后在web.xml中进行Filter配置:filterfilter-namefirstFilter/filter-namefilter-classcn.tx.filter.MyFilter/filter-class/filterfilter-mappingfilter-namefirstFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping第一个filter括号中的filter-name是给过滤器起一个名字可以和类名不相同class是filter的路径包名类名第二个filter-mapping括号中name和上面的name一致url-pattern和Servlet的url-pattern的匹配规则一模一样1.完全路径匹配 以/开头 例如 /aaa /aaa/bbb2.目录匹配 以/开头 例如 /aaa/* /*3.扩展名匹配不能以/开头例如 *.do *.action ....url-pattern/*/url-pattern这个意思是给这个项目下的全部的路径统一处理