缓存控制代码不适用于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或会话是否已设置的条件,如果未设置,则您必须重定向到登录页面。若答案对你们有帮助,请接受。谢谢,干杯。。。!!