2015-10-22 3 views
4

Как удалить значение параметра при обновлении страницы с помощью F5/reload? Ожидаемый результат: когда B.jsp отправляет статус обратно в A.jsp, я хочу сделать значение пустым, если пользователь нажимает на страницу обновления.Как удалить значение getParameter() при обновлении страницы

A.jsp:

<%String VALUE = request.getParameter("STATUS");%> 

B.jsp:

<%send.responseRedirect("A.jsp?STATUS="Y");%> 
+0

Вы должны использовать атрибут сеанса для хранения тот факт, что вы уже получили параметр и/или использовать сервлеты. –

ответ

2

Когда HTML страница отправляется в сервлет/JSP или любой другой вид веб-ресурса он содержит некоторые заголовки. Среди этих заголовков содержатся параметры запроса. Когда пользователь нажимает refresh/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 парам = XYZ123?' И попробуйте нажать на обновление.

1

если не использовать большие изображения на веб-странице можно также удалить кэширование с этими линиями

<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" /> 
Смежные вопросы