一、 过滤器 doFilter()
1. CacheFilter.java 缓存过滤器
设置没有缓存
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
设置过期时间的时间限制
response.setDateHeader("Expires",System.currentTimeMillis()+自己设置的时间期限);
关于chain.doFilter(request,response)
他的作用是将请求转发给过滤器链上下一个对象。这里的下一个指的是下一个filter,如果没有filter那就是你请求的资源。一般filter都是一个链,web.xml 里面配置了几个就有几个。一个一个的连在一起
request -> filter1 -> filter2->filter3 -> .... -> request resource.
2. EncodeFilter.java 编码过滤
HttpServletRequestrequest = (HttpServletRequest)servletRequest;
HttpServletResponseresponse = (HttpServletResponse)servletResponse;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
filterChain.doFilter(request, response);
3. SessionFilter.java Session过滤
过滤不需要登录可进行访问的网页
需要在web.xml中进行白名单配置
<init-param>
<param-name>excludedPages</param-name>
<param-value>index.jsp,web/timeout.jsp,web/login.jsp</param-value>
</init-param>
用FilterConfig就可以获得以 filter 作为描述标签内的参数
public void init(FilterConfig filterConfig) throws ServletException {
excludedPages = filterConfig.getInitParameter("excludedPages");
if(excludedPages != null || !"".equals(excludedPages)) {
excludedPageArray = excludedPages.split(",");
}
}
再进行doFilter()中的操作