如何使用sendRedirect()发送变量

时间:2014-08-08 08:30:06

标签: java jsp servlets

使用方法forward()我可以使用request.setAttribute()“发送”变量。

如果我应该使用sendRedirect()而该怎么办?如何将变量“发送”到目标页面?

我不喜欢这样做:sendRedirect("page?varName=varValues"),我不喜欢看到浏览器上写的变量名称和值。

使用sendRedirect()时,有没有办法以隐藏的方式发送变量?

谢谢

3 个答案:

答案 0 :(得分:1)

理论上,我们不能使用sendRedirect()发送POST请求。

但是如果你通过sendRedirect()传递隐藏的参数,那么有一种可能的解决方案。您可以在对象会话中设置这些参数。

例如:

HttpSession session = request.getSession(false);

session.setAttribute("parameter", "parameter");

response.sendRedirect("/page");

答案 1 :(得分:0)

您可以在session而不是request上设置属性,以便您可以从重定向的页面访问它。但是有多种解决方案。

答案 2 :(得分:0)

可能的方法是在会话中设置如下的内容,

session.setAttribute("varName", "value");
response.sendRedirect("/resultPage");

这将重定向到结果页面,您可以从会话中获取值

session.getAttribute("varName");

session对象将在整个应用程序中可用,直到您手动使其无效。

  

RequestDispatcher forward()方法保存请求对象的原因是它转发了相同的请求并sendRedirect()   并不这样做,因为它每次都会创建新的请求

Learn More ..