【问题标题】:Share object between servlets在 servlet 之间共享对象
【发布时间】:2015-04-08 00:31:15
【问题描述】:

我正在做我的第一个 Web 应用程序,并且对请求/会话 doGet/doPost 有疑问。首先,在一个名为“userConnection”的 servlet 中,用户必须通过输入用户名/密码进行连接。然后我用其他变量(用户名、密码等)创建一个 bean“用户”。我在下一个 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() 方法,因此用户还没有机会填写表单,所以我收到有关表单为空的错误。 用户属性应该是会话属性而不是请求属性吗?有没有办法可以将“用户”对象从 userConnection servlet 带到 MAKE_OFFER servlet,无论是否调用 doPost?

谢谢

【问题讨论】:

    标签: jakarta-ee servlets


    【解决方案1】:

    我认为你有几个问题:

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

    【讨论】:

    • 谢谢谢谢谢谢!我之前试过了,还是不行,但是我的jsp页面名称可能有错别字-_-
    猜你喜欢
    • 2011-08-16
    • 2012-07-22
    • 1970-01-01
    • 2012-08-18
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多