2012-02-21 39 views
0

我在jsp文件中有一个表单,我用它来获取用户详细信息。在单击提交按钮时,表单操作已被设置为另一个将详细信息插入到数据库中的jsp文件。 但在此之前,只要用户输入用户名,就会有一个检查可用性按钮。 单击按钮我希望控件转到另一个jsp页面以及用户名作为参数。我正在做检查可用性。我想将回应返回到以前的jsp文件。 这可以使用“请求调度程序”来完成。如果是,是否有人可以解释请求调度程序的包含和转发方法。我试图在网上搜索它。只有可用的代码。我想知道这个请求调度程序是什么以及它是如何工作的。请求调度程序

回答

1

请求调度程序将请求分派给给定的目标。请求调度程序基本上将控制权交给给定的目标。在JSP的情况下,JSP将使用给定的请求并将其输出发送给给定的响应。

include()方法允许您在控件返回后继续使用响应,以便您可以在必要时添加一些数据。包含的目标不允许操作响应头。 include()的目标应该是最终回应的一部分。 forward()方法允许您将控件完全传递给给定的目标。被转发的目标被允许操纵响应头。 forward()的目标应该是整个 JSP文件本身,您希望以其全部荣耀(反过来可以包含其他JSP)呈现它。

在这种情况下,您需要发送转发。哦,这种工作不属于JSP,而是属于Servlet。当您试图转发请求的JSP已经向响应发送了一些数据时,您可能会面临IllegalStateException

+0

所以,当用户点击“检查可用性按钮”时,我可以使用include方法来检查用户可用性。输出(“用户名可用”或“不可用”)将显示在同一页面(原始页面)上。 – Ashwin 2012-02-21 05:38:04

+0

也可以,但这很笨拙,你仍然需要将它包装在JSTL''中以有条件地包含它。我只是用EL打印信息。它会在请求属性出现时显示,否则它不会显示任何内容。像这样' $ {message}' – BalusC 2012-02-21 05:43:11