我的隐藏参数方法使用 response.sendRedirect().. 可以吗?

My method for hidden parameters using response.sendRedirect().. is it ok?

我需要使用response.sendRedirect传递隐藏参数(在某些情况下我不想使用转发)。

因为我不想使用像 ?par1=val1&par2=val2& 这样的 GET 参数,...我正在使用这样的会话对象:

session.setAttribute("error_message", "Error: e-mail is null");
response.sendRedirect(targetURL);

并且在加载 "targetURL" 时(它将是一个 JSP 文件),我读取该值然后删除该会话属性:

if(session.getAttribute("error_message") != null) {%>
   <h4><%=session.getAttribute("error_message").toString()%></h4> <%
   session.removeAttribute("error_message");
}
%>

您认为这是 reasonable/reliable 一种满足我需要的方式吗?对性能不好吗?你怎么看待这件事?坚持下去还是敲打那个代码?

谢谢!

在你的情况下使用session是可以的。 您需要记住的是,会话不是线程安全的,一旦同一浏览器中的另一个选项卡 window 删除该属性,用户就会收到错误消息。

性能还不错。

如果您不想通过 URL 传递数据并且您正在使用 response.sendRedirect(),那么会话范围对您来说是一个不错的选择。