【问题标题】:How to display results on same page as requesting page in jsp-servlets如何在 jsp-servlets 中的请求页面上显示结果
【发布时间】:2012-04-17 20:46:55
【问题描述】:

我使用 jsp 和 servlet 开发此 Web 应用程序。我想知道如何在发出请求的同一页面上显示结果。例如,通常我所做的是将请求从一个 jsp 发送到一个 servlet,然后 servlet 在单独的 jsp 上发送响应/结果。我想在同一页面上显示数据库结果。如何做到这一点?...代码 sn-p 将不胜感激。谢谢

【问题讨论】:

  • 使用 Jabascript,您可以向 servlet 发送 Ajax 请求,检索响应并在同一页面上显示结果。

标签: java jsp servlets


【解决方案1】:

只需在请求范围内设置必要的数据,并使用RequestDispatcher#forward() 将控件转发到所需的 JSP,该 JSP 进而可以根据结果生成适当的 HTML。

request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);

our servlets wiki page 中的 hello world 示例也证明了这一点。

【讨论】:

    【解决方案2】:

    这是完全可能的,但您需要在您的工具集中包含 JavaScript。我的建议是在您的应用程序中使用 AJAX 方法,这意味着大量使用客户端脚本(即 JavaScript)。

    来自 DeveloperWorks 的This tutorial 采用纯 JavaScript/Servlet 方法。如果您想做更高级的事情,我强烈建议您使用支持 AJAX 的 JavaScript 框架,例如 JQuery

    【讨论】:

    • 绝对没那么难。它甚至比使用 ajax 时更容易。
    • 易与难都是相对的。我会删除形容词以保持客观
    【解决方案3】:

    从您的 servlet 发送重定向到您的同一页面。此外,在请求中设置一些属性并将其显示在您的页面中,例如将List<MyObject> 保存在请求中,然后在您的jsp 中从请求中读取列表并在表格中显示值。

    【讨论】:

    • 会话范围不是保存请求范围数据的正确范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多