【问题标题】:JSP: Why do we need RequestDispatcher?JSP:为什么我们需要 RequestDispatcher?
【发布时间】:2011-11-09 20:26:16
【问题描述】:

我仍然对 RequestDispatcher 的用法感到困惑。

如果我有一个内部使用 url 调用 servlet 的 javascript 文件,如下所示:

var url = "../../../../FeesServlet?selectedCode="+selectedCode+"&searchNameOrCode="+searchNameOrCode

req.open("GET", url, true);
req.onreadystatechange = someFunction();
req.send(null);

当我没有它就可以完成上述工作时,为什么我们需要一个 RequestDispatcher?上面的代码仍然称为我的业务逻辑所在的 servlet(资源),并且仍然可以完成工作。

我只是认为不需要 RequestDispatcher。

【问题讨论】:

    标签: jsp requestdispatcher


    【解决方案1】:

    但是如何在 servlet 中转发到新的 url/servlet?为此,您需要 RequestDispatcher:

    RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aResponsePage.toString());
    dispatcher.forward(aRequest, aResponse);
    

    如果您不需要转发,则不需要调度员。

    【讨论】:

    • IC。现在从 javascript 文件中,我当然可以调用如上所示的 servlet,但除非您使用 RequestsDispatcher,否则无法在 servlet(如 JS)中调用另一个 servlet?我做对了吗?
    • 是的,您可以使用 HttpServletResponse 重定向功能调用转发或重定向。
    • @Ramario 重定向功能 - 在调用程序中执行不会继续,而 RequestsDispatcher 上的转发/包含将继续。宾果游戏?
    • 阅读此处了解转发与重定向的区别:javapractices.com/topic/TopicAction.do?Id=181
    猜你喜欢
    • 2019-06-09
    • 2014-06-18
    • 2017-02-26
    • 2011-04-03
    • 2017-07-27
    • 2020-09-21
    • 2020-03-09
    • 2018-12-24
    • 2012-04-08
    相关资源
    最近更新 更多