Java 在JSP中,有没有一种方法可以将HttpServletRequest对象作为属性传递给另一个HttpServletRequest对象
我正在使用Struts/JSP作为webapp。我在a页收集用户定义的参数(因为请求参数不能使它们成为会话参数),然后我转到B页向用户询问是/否类型的问题。如果是,我需要返回A页并继续常规处理。但是显然,页面A的请求对象已经不存在了 是否有一种方法可以将页面a的请求对象设置为页面B中的参数,这样当我返回到页面a时,我就拥有了我第一次在页面a时拥有的相同请求对象 我需要像下面这样的东西: 第A页--(req1)--->B页(set req.setAttr('PREVERREQ',req1))------>A页(req=req.GETATR('PREVERREQ'))Java 在JSP中,有没有一种方法可以将HttpServletRequest对象作为属性传递给另一个HttpServletRequest对象,java,jsp,struts,Java,Jsp,Struts,我正在使用Struts/JSP作为webapp。我在a页收集用户定义的参数(因为请求参数不能使它们成为会话参数),然后我转到B页向用户询问是/否类型的问题。如果是,我需要返回A页并继续常规处理。但是显然,页面A的请求对象已经不存在了 是否有一种方法可以将页面a的请求对象设置为页面B中的参数,这样当我返回到页面a时,我就拥有了我第一次在页面a时拥有的相同请求对象 我需要像下面这样的东西: 第A页--(req1)--->B页(set req.setAttr('PREVERREQ',req1))---
非常感谢您的帮助。在多页流程中,您需要将所有间歇性收集的数据存储到会话中。看和。不,你不能做你想做的事。您了解HTTP请求-响应周期是如何工作的吗
- 用户使用浏览器向服务器发送HTTP请求
- 服务器处理请求(调用servlet或JSP)
- servlet或JSP生成的响应通常由HTML页面组成
- 服务器将响应发送回浏览器
request.getSession()
来获取HttpSession
对象,您可以在其中存储该用户会话期间的数据。在A页中,您可以再次从会话对象中获取数据。使用隐藏的输入元素(input type=“hidden”
),其中保留表单提交的请求参数。不要将其复制/存储为请求属性。当响应完成时,他们会迷失方向
由于我不使用struts,这里有一个JSP应该是什么样子的基本示例(将输入标签和XSS等明显的安全问题排除在外,struts应该足够聪明,可以自己处理)
A页:
<form>
<input type="text" name="input1" value="${param.input1}">
<input type="text" name="input2" value="${param.input2}">
<input type="text" name="input3" value="${param.input3}">
<input type="hidden" name="yesorno" value="${param.yesorno}">
<input type="submit" value="go to page B">
<input type="submit" value="submit">
</form>
B页
<form>
<input type="checkbox" name="yesorno" value="yes" ${!empty param.yesorno ? 'checked' : ''}>
<input type="hidden" name="input1" value="${param.input1}">
<input type="hidden" name="input2" value="${param.input2}">
<input type="hidden" name="input3" value="${param.input3}">
<input type="submit">
</form>