在 servlet 之间共享对象
Share object between servlets
我正在做我的第一个 Web 应用程序并且有一个关于 request/sessions doGet/doPost 的问题。首先,在名为 'userConnection' 的 servlet 中,用户必须通过输入 username/password 进行连接。然后我用其他变量(用户名、密码等)创建一个 bean 'user'。我在下一个 servlet 的逻辑中需要这个 bean,MAKE_OFFER
在我做的userConnection的doPost()方法中
<..creating user bean object..>
request.setAttribute("user", user);
this.getServletContext().getRequestDispatcher( MAKE_OFFER ).forward(request, response);
MAKE_OFFER 是另一个 servlet 的 URL。在此页面中,用户必须填写表格才能提供报价,我正在使用用户 bean 信息进行一些验证。但是由于 getRequestDispatcher 正在调用 doPost() 方法,用户还没有机会填写表单,所以我得到关于表单为空的错误。
用户属性应该是会话属性而不是请求属性吗?有没有一种方法可以将 'user' 对象从 userConnection servlet 带到 MAKE_OFFER servlet,调用或不调用 doPost?
谢谢
我认为你有几个问题:
- 正如您自己建议的那样,您需要一种在请求之间保留客户端状态的机制。使用会话属性是最常见和最简单的方法;
- 看起来您正在将处理直接转发到您的 MAKE_OFFER servlet。相反,您需要转到包含报价表的页面(可能是 JSP)。表单
submit
随后应 POST
到您的 MAKE_OFFER servlet。
我正在做我的第一个 Web 应用程序并且有一个关于 request/sessions doGet/doPost 的问题。首先,在名为 'userConnection' 的 servlet 中,用户必须通过输入 username/password 进行连接。然后我用其他变量(用户名、密码等)创建一个 bean 'user'。我在下一个 servlet 的逻辑中需要这个 bean,MAKE_OFFER
在我做的userConnection的doPost()方法中
<..creating user bean object..>
request.setAttribute("user", user);
this.getServletContext().getRequestDispatcher( MAKE_OFFER ).forward(request, response);
MAKE_OFFER 是另一个 servlet 的 URL。在此页面中,用户必须填写表格才能提供报价,我正在使用用户 bean 信息进行一些验证。但是由于 getRequestDispatcher 正在调用 doPost() 方法,用户还没有机会填写表单,所以我得到关于表单为空的错误。 用户属性应该是会话属性而不是请求属性吗?有没有一种方法可以将 'user' 对象从 userConnection servlet 带到 MAKE_OFFER servlet,调用或不调用 doPost?
谢谢
我认为你有几个问题:
- 正如您自己建议的那样,您需要一种在请求之间保留客户端状态的机制。使用会话属性是最常见和最简单的方法;
- 看起来您正在将处理直接转发到您的 MAKE_OFFER servlet。相反,您需要转到包含报价表的页面(可能是 JSP)。表单
submit
随后应POST
到您的 MAKE_OFFER servlet。