#java #jsp #web #firefox #servlets
Вопрос:
У меня есть URL ( https://domainname/servlet/Test.jsp?param1=123amp;param2=456
), на моей странице jsp я получаю значение param1
и param2
использую
request.getParameter("param1");
Я выполняю проверку, что если param1
и param2
не равно нулю, то я вызываю сервлет. Проблема, с которой я сталкиваюсь, заключается в том, что сервлет правильно вызывается в браузере Google Chrome, но в то же время сервлет неправильно вызывается в последней версии Mozilla Firefox (версия 86.0.1), поскольку значения param1
и param2
равно нулю, когда я получаю значения параметров с помощью request.getParameter("param1")
. Пожалуйста, обратите внимание, что я добавил заголовки управления кэшем на своей странице jsp, и я не хочу, чтобы кэширование происходило в любом браузере. Если я отключу конфигурацию кэширования в Firefox about:config, сервлет также будет вызываться в браузере Firefox, и моя функциональность будет работать должным образом. Ниже приведен мой исходный код для справки.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control", "no-store, no-store, must-revalidate"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>
<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html;charset=utf-8">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<%
try {
param1 = request.getParameter("param1");
param2 = request.getParameter("param2");
if (param1 != null amp;amp; param2 != null) {
System.out.println("Calling servlet");
response.sendRedirect(request.getContextPath() "/servlet");
} else {
System.out.println("Not Going to call servlet");
}
} catch (Exception e) {
writeLog.error("Exception in view doc" e);
}
%>