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 {} }