Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用sendRedirect()发送变量_Java_Jsp_Servlets - Fatal编程技术网

Java 如何使用sendRedirect()发送变量

Java 如何使用sendRedirect()发送变量,java,jsp,servlets,Java,Jsp,Servlets,通过使用方法forward()我可以使用request.setAttribute()来“发送”变量 如果我应该使用sendRedirect()来代替呢??如何将变量“发送”到目标页面 我不喜欢这样做:sendRedirect(“page?varName=varValues”),我不喜欢在浏览器上看到变量名称和值 使用sendRedirect()时,是否有办法以隐藏方式发送变量 谢谢您可以在会话上设置属性,而不是在请求上设置属性,这样您就可以从重定向页面访问该属性。但是有多种解决方案。理论上,我们

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

如果我应该使用
sendRedirect()
来代替呢??如何将变量“发送”到目标页面

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

使用
sendRedirect()
时,是否有办法以隐藏方式发送变量


谢谢

您可以在
会话
上设置属性,而不是在
请求
上设置属性,这样您就可以从重定向页面访问该属性。但是有多种解决方案。

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

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

例如:

HttpSession session = request.getSession(false);

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

response.sendRedirect("/page");

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

session.setAttribute("varName", "value");
response.sendRedirect("/resultPage");
这将重定向到结果页,您可以从会话中获取值,如下所示:

session.getAttribute("varName");
会话
对象将在整个应用程序中可用,直到您手动使其无效为止

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


您可能需要花时间阅读