我使用jsp和servlets开发这个Web应用程序。我想知道如何在与发出请求的页面相同的页面上显示结果。例如,我通常做的是从一个jsp向servlet发送请求,然后servlet在单独的jsp上发送响应/结果。我想在同一页面上显示数据库结果。如何做到这一点?..代码片段将不胜感激。感谢
答案 0 :(得分:3)
只需在请求范围内设置必要的数据,然后使用RequestDispatcher#forward()
将控件转发到所需的JSP,然后根据结果生成相应的HTML。
request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
our servlets wiki page中的hello world示例也证明了这一点。
答案 1 :(得分:2)
这是完全可行的,但您需要在工具集中包含JavaScript。我建议的是你的应用程序中的AJAX方法,这意味着密集使用客户端脚本(即JavaScript)。
DeveloperWorks中的This tutorial提供了一种纯JavaScript / Servlet方法。如果你想做更多高级的东西,我强烈建议你使用支持AJAX的JavaScript Framework,比如JQuery。
答案 2 :(得分:0)
从您的servlet中,将重定向发送到同一页面。另外,在请求中设置一些属性并在页面中显示,例如在请求中保存List<MyObject>
,然后在您的jsp中从请求中读取列表并在表中显示值。