用拦截器解决页面JSP缓存问题
2013-01-26 16:42
309 查看
相信大家有过如此困扰吧?
客户端浏览器因为缓存的原因,有时候页面是旧的。 很恼火,我相信很多人的解决方案无非就是以下两种:
1.在jsp页面meta标记no-cache
2.request中设置header
但这样做是有弊端的。显而易见,不管是按方案1还是方案2,都需要在每一个JSP页面进行类似设置。 那有没有可以只用设置一次,就可以取消客户端页面缓存的呢? 当然有!
使用strust2栏截器,对页面所有访问的action进行拦截,并且设置response的header属性,就大功告成,具体代码:
拦截器的定义及全局调用(需引用默认拦截器)
拦截器自定义实现类AddUrlTimeFlag.java
一般在项目里,我们常拿拦截器判断非正常登陆、权限分配等等,不过加入去掉缓存的几行代码也不碍事,是吧?
客户端浏览器因为缓存的原因,有时候页面是旧的。 很恼火,我相信很多人的解决方案无非就是以下两种:
1.在jsp页面meta标记no-cache
2.request中设置header
但这样做是有弊端的。显而易见,不管是按方案1还是方案2,都需要在每一个JSP页面进行类似设置。 那有没有可以只用设置一次,就可以取消客户端页面缓存的呢? 当然有!
使用strust2栏截器,对页面所有访问的action进行拦截,并且设置response的header属性,就大功告成,具体代码:
拦截器的定义及全局调用(需引用默认拦截器)
<interceptors> <interceptor name="changeUrlInterceptor" class="com.main.action.AddUrlTimeFlag"></interceptor> <interceptor-stack name="changeUrlInterceptorStack"> <interceptor-ref name="changeUrlInterceptor"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="changeUrlInterceptorStack"></default-interceptor-ref>
拦截器自定义实现类AddUrlTimeFlag.java
package com.main.action; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.StrutsStatics; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; /**去掉缓存的拦截器*/ public class AddUrlTimeFlag implements Interceptor{ public void destroy() {} public void init() {} public String intercept(ActionInvocation arg0) throws Exception { System.out.println("进入栏截器"); ActionContext actionContext = arg0.getInvocationContext(); HttpServletResponse response =(HttpServletResponse)actionContext.get(StrutsStatics.HTTP_RESPONSE); response.setDateHeader("expires", -1); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); return arg0.invoke(); } }
一般在项目里,我们常拿拦截器判断非正常登陆、权限分配等等,不过加入去掉缓存的几行代码也不碍事,是吧?
相关文章推荐
- 解决JSP页面图片缓存问题
- 总结:JSP页面img图片缓存问题现象表述及问题解决
- Web开发_问题解决(3)之linux服务器上获取路径问题||jsp页面报错问题
- 用cookie解决页面没有更新缓存只刷新一次页面的问题+跨域问题
- jsp页面传值的乱码问题的解决
- 前台jsp页面向后台传汉字出现乱码问题解决办法
- 解决JSP页面传参乱码的问题
- jsp 页面链接(注解:指a标签的超链接)乱码问题及其解决办法
- [解决]eclipse中JSP页面的内置对象 不能引出方法的问题
- 请求转发jsp页面乱码问题的快速解决方法
- 解决Eclipse和myeclipse在进行 html,jsp等 页面编辑时,自动格式化变丑的问题
- Jsp页面中的中文乱码问题解决
- JSP页面与后台交互过程的传值乱码问题解决
- 如何解决网站页面CSS、JS脚本在浏览器的缓存问题
- jsp页面运行错误的问题解决方式
- 如何解决JSP页面显示乱码问题
- Jsp servlet页面数据乱码问题解决(默认mysql数据库)
- JSP页面与数据库连接中出现的中文乱码问题分析与解决
- 在jsp页面用request.setAttribute()在action用request.getAttribute()接收得到为null的问题的解决方法
- 解决JSP页面乱码问题(非页面设置,编译器编码问题)