【问题标题】:How do I send data between servlets?如何在 servlet 之间发送数据?
【发布时间】:2011-03-20 05:55:28
【问题描述】:

总的来说,我对 servlet 和 Web 开发还很陌生。

所以基本上我有一个查询数据库并返回一些值(如名称)的 servlet。我想要的是将名称转换为打开该名称的详细信息页面的链接(另一个 servlet 将处理)。如何将名称发送到另一个 servlet,以便它可以查询数据库以获取相关详细信息?

也许我采取了错误的方法?

编辑:我使用的是 Tomcat 5.5

【问题讨论】:

    标签: java database servlets


    【解决方案1】:

    将其作为请求参数传递。

    要么将其添加到另一个 servlet 的链接的 URL 的查询字符串中,然后 request.getParameter("name")doGet() 方法中可用。

    <a href="otherservlet?name=${name}">link</a>
    

    或者将其添加为 POST 表单中的隐藏输入字段,该字段提交给另一个 servlet,然后 request.getParameter("name")doPost() 方法中可以使用该 servlet。

    <form action="otherservlet" method="post">
        <input type="hidden" name="name" value="${name}" />
        <input type="submit" />
    </form>
    

    另见:

    【讨论】:

    • 是的。 Servlet 通常不相互通信。他们只向客户提供请求。
    • 对不起另一个新手问题,但“${whatever}”是什么意思/做什么?
    • 感谢这对我来说真的很有效!我在 doGet() 方法中使用了 getParameter。但是,我不需要在名称周围添加“${}”。
    【解决方案2】:

    不确定我是否理解正确,但您可以查看 javax.servlet.RequestDispatcher 并将 url 转发到第二个 servlet。 可以使用名称创建 url:

    http://myhost.mydomain/my.context/servlet2.do?name=John
    

    【讨论】:

    【解决方案3】:

    我会在第一个 servlet 或客户端中创建 URL,使用 URL 的可配置模板。这样,两个 servlet 就清晰地分开了——您甚至可以将每个 servlet 放在不同的机器上。

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 2016-03-28
      • 2015-07-12
      • 2018-12-09
      • 1970-01-01
      • 2017-08-22
      • 2013-08-13
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多