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()
不要这样做,因为它每次都会创建新的请求
您可能需要花时间阅读