Filter对请求和响应进行拦截或者增强的对象,就是过滤器。
@WebFilter({ "/Myfilter", "*.action" })
filter的注释,表面这个类是filter类,名称是Myfilter,过滤任何后缀名为.action的请求。
filter的三个方法
public void init(FilterConfig fConfig)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
doFilter是核心,是根据处理请求参数,处理的方法
init中的FilterConfig能通过相应的方法,得到filter相关属性,如命令,初始化参数。getFilterName() getInitParameter()
从doFilter的参数request中获取请求连接的方法为
(HttpServletRequest) request. getServletPath();
获取的是<a href=”product.action”>product</a>
getServletPath获取的是a标签的超链接product.action
而getContextPath获取的是项目的根目录。
Filter的范围
DispatcherType.REQUEST 默认
DispatcherType.FORWARD
DispatcherType.INCLUDE
DispatcherType.ERROR
DispatcherType.ASYNC