在servlet之间共享对象

时间:2015-04-08 00:31:16

标签: java-ee servlets

我正在做我的第一个Web应用程序并且有关于请求/会话doGet / doPost的问题。首先,在名为“userConnection”的servlet中,用户必须通过输入用户名/密码进行连接。然后我用其他变量(用户名,密码等)创建一个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属性应该是会话属性而不是请求属性吗?有没有办法可以在调用doPost时调用userConnection servlet将'user'对象引入MAKE_OFFER servlet?

由于

1 个答案:

答案 0 :(得分:1)

我认为你有几个问题:

  1. 正如您自己建议的那样,您需要一种在请求之间保留客户端状态的机制。使用会话属性是最常见和最简单的方法;
  2. 看起来您正在将处理直接转发到MAKE_OFFER servlet。相反,您需要转发到包含您的报价表单的页面(可能是JSP)。表单submit随后应POST到您的MAKE_OFFER servlet。