Java 如何在刷新页面时删除getParameter()值
如何在使用F5/reload刷新页面时删除参数值?预期的结果是,当B.jsp将状态发送回A.jsp时,如果用户点击刷新页面,我希望将该值设为空 A.jsp:Java 如何在刷新页面时删除getParameter()值,java,jsp,Java,Jsp,如何在使用F5/reload刷新页面时删除参数值?预期的结果是,当B.jsp将状态发送回A.jsp时,如果用户点击刷新页面,我希望将该值设为空 A.jsp: <%String VALUE = request.getParameter("STATUS");%> B.jsp: <%send.responseRedirect("A.jsp?STATUS="Y");%> 当html页面发布到servlet/jsp或任何其他类型的web资源时,它包含一些标题。这些标头以及其
<%String VALUE = request.getParameter("STATUS");%>
B.jsp:
<%send.responseRedirect("A.jsp?STATUS="Y");%>
当html页面发布到servlet/jsp或任何其他类型的web资源时,它包含一些标题。这些标头以及其他标头包含请求的参数。当用户在浏览器上点击刷新/f5时,浏览器所做的就是重新发布与以前相同的标题。因此,这个问题是特定于浏览器的
现在你可以用很多方法来解决这个问题。一种方法是将当前值存储在会话变量中,然后请求随请求参数一起出现,如果请求参数与会话属性值相同,则可以将其视为刷新操作
考虑newjsp.jsp的以下代码:
String param = request.getParameter("param");
if (session.getAttribute("PARAM") == null) {
out.print("This is a NEW request");
session.setAttribute("PARAM", request.getParameter("param"));
} else if (session.getAttribute("PARAM").toString().equalsIgnoreCase(param)) {
out.print("This is a REFRESH");
session.removeAttribute("PARAM");
} else {
out.print("This is a NEW request");
session.setAttribute("PARAM", request.getParameter("param"));
}
使用'newjsp.jsp?param=xyz123'调用它,然后尝试点击刷新按钮 如果不在网页上使用大型图像,也可以删除缓存
用这些线
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
您必须使用会话属性来存储您已经收到参数和/或使用servlet的事实。