jsp编码过程中会有这样的问题,如果你没有设置缓存清理,当你连续查询同一个账户的记录时,页面不会刷新,而是一直停留在你第一次的查询结果中。所以要避免这种情况的出现我们就需要设置页面清理缓存。

清理缓存的方法是在<head>标签下加如下代码即可:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">

如果我的页面比较多,那么我在每一个页面中都加这样两行代码就比较反锁了,所以一种简单的办法就是配置一个清理缓存的过滤器,过滤器代码如下:

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;
import javax.servlet.http.HttpServletResponse;
/**
 * 清除页面缓存
 * Servlet Filter implementation class NoCashFilter
 */
public class NoCashFilter implements Filter {
    public NoCashFilter() {}
    public void destroy() {}
    /**
     * 实现这个方法
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse httpResponse=(HttpServletResponse)response;
        httpResponse.setHeader("Pragma", "no-cache");
        httpResponse.setHeader("Cache-Control", "no-cache, must-revalidate");
        chain.doFilter(request, response);
    }
    public void init(FilterConfig fConfig) throws ServletException {}
}