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

时间:2016-06-27 15:54:50

标签: jsp servlets parameters response.redirect

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

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

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");
}
%>

你认为这是一种合理/可靠的做我需要的吗?性能不好吗?你怎么看待这件事?坚持下去或抨击那些代码?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的情况下使用会话是可以的。 您需要记住的是,会话不是线程安全的,如果同一浏览器窗口中的另一个选项卡删除该属性,则用户将收到错误。

表现并不差。

如果您不想通过URL传递数据并且您正在使用yum install gcc-c++,则会话范围对您来说是个不错的选择。