Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缓存控制代码不适用于jsp中的post请求_Jsp_Servlets - Fatal编程技术网

缓存控制代码不适用于jsp中的post请求

缓存控制代码不适用于jsp中的post请求,jsp,servlets,Jsp,Servlets,我用这个代码来控制缓存 response.setHeader("Cache-Control", "no-cache, no-store, must- revalidate"); // HTTP 1.1. response.setHeader("Pragma", "no-cache"); // HTTP 1.0. response.setHeader("Expires", "0"); // Proxies. if (request.getSession(false) == null

我用这个代码来控制缓存

 response.setHeader("Cache-Control", "no-cache, no-store, must- 
 revalidate"); // HTTP 1.1.
 response.setHeader("Pragma", "no-cache"); // HTTP 1.0.

 response.setHeader("Expires", "0"); // Proxies.

 if (request.getSession(false) == null) {
    response.sendRedirect("Login.jsp");
}

参考RFC 2616第9.5节:

“对POST方法的响应不正确 可缓存,除非响应 包括适当的缓存控制或 过期标题字段。“

所以,您可以缓存POST请求响应,但前提是在其中添加适当的头。您可以如下设置到期时间并尝试缓存机制

response.setDateHeader("Expires", System.currentTimeMillis() + 604800000L);
用于代理服务器

response.setDateHeader("Expires", 0);

我使用上面的代码进行缓存控制。当GET请求到来时,它可以正常工作,但此代码不适用于POST请求。嗨,Onkar Musale,我在注销后面临浏览器后退按钮的问题。注销后,当我单击“上一步”按钮时,我们将看到上一页。为了阻止这种情况,我编写了一段代码,当有get请求时,该代码运行良好(单击“上一步”按钮登录页面出现),但当我使用post方法时,单击“上一步”按钮后,打开一个错误页面,说“确认表单重新提交”。请帮我这个。我还可以与您共享我的代码。如果您正在管理会话或cookie,则您必须在单击“注销”按钮后销毁当前会话或cookie的值,然后您必须写入该cookie或会话是否已设置的条件,如果未设置,则您必须重定向到登录页面。若答案对你们有帮助,请接受。谢谢,干杯。。。!!