配置了一个filter,代码:
public class ThreadFilter implements Filter{
public void init(FilterConfig filterConfig) throws ServletException {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
System.out.println(req.getSession().getId());
Threadbean.getInstance().setContext(req.getSession().getId());
System.out.println("开始了...");
chain.doFilter(request, response);
}
}
一开始启动tomcat到主页的时候filter会拦截两次,输出了两次信息,我的主页并没有使用action转发,后面就碰到有时候拦截不到的问题,信息没有输出,配置如下:
threadfilter
com.shop.util.ThreadFilter
threadfilter
/*
是代码出错了还是配置出错了,filter要注意哪些细节上的问题?
如果有输出,fileter已经生效了;不加过滤的请求类型,默认的是request,最好加上request和forward试一下
为何自己实现Filter?
多个filter同时开启时,会有层次上的先后顺序。
可能是你的请求先被别的filter拦截了,没有通过相关的验证就被返回了,没有传递到你的filter里面
这样/* 的配置
js文件好像都要经过滤器的、图片都会经过过滤器的。
我以前的也调试过的,有点记不清楚了,你把请求的URL都打印出来就知道了!