使用方法forward()
我可以使用request.setAttribute()
“发送”变量。
如果我应该使用sendRedirect()
而该怎么办?如何将变量“发送”到目标页面?
我不喜欢这样做:sendRedirect("page?varName=varValues")
,我不喜欢看到浏览器上写的变量名称和值。
使用sendRedirect()
时,有没有办法以隐藏的方式发送变量?
谢谢
答案 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()
并不这样做,因为它每次都会创建新的请求