如何从浏览缓存加载页面时执行javascript?

时间:2015-04-10 06:54:45

标签: java javascript spring caching

在我的春季项目中,我使用下面的拦截器解决了后门问题。

public class SampleInterceptor implements HandlerInterceptor
{
    public SampleInterceptor() {

    }

    @Override
    public void afterCompletion(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {


    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response,
            Object object, ModelAndView model) throws Exception {


        if(request.getMethod().equals("GET"))
        {
            response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
            response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
            response.setDateHeader("Expires", 0);
        }
        else if(request.getMethod().equals("POST"))
        {
            System.out.println("After post request : ");
        }

    }

}

我已经清除了所有请求的浏览器缓存,除了post.Now用户注销并单击后退它不会仅仅为获取请求转到应用程序。但是请求它转到application.how我避免了这个问题post request。如果我清除了浏览器缓存的帖子请求,它会要求确认表单提交。如何解决这个问题?任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:0)

可以通过使用AJAX而不是表单提交来避免。使用AJAX POST提交您的请求。

另请参阅以下网址了解更多详情: 1. Prevent Back button from showing POST confirmation alert

  1. http://en.wikipedia.org/wiki/Post/Redirect/Get
  2. 感谢!!!

答案 1 :(得分:0)

发布将始终要求提交表单。

使用AJAX帖子发布您的数据,然后在收到回复时重定向或提交构建get请求的数据。

请注意,当某人返回更新或插入数据的页面时。数据将重新发布到服务器,并可能导致重复插入/更新。如果你愿意,请处理这类案件。