ServletRequest和ServletContext接口中的getRequestDispatcher()中的单个方法

时间:2010-02-15 05:58:28

标签: java servlets

HI 我想知道在Servlet Request和ServletContext接口中有一个名为getRequestDispatcher()的方法。有什么不同?

2 个答案:

答案 0 :(得分:2)

Servlet API Javadocs中所述,

  

此方法[ServletRequest one]和ServletContext.getRequestDispatcher(java.lang.String)之间的区别在于此方法可以采用相对路径。

答案 1 :(得分:0)

您可以将相对路径传递给ServletRequest的getRequestDispatcher(),但不传递给ServletContext的getRequestDispatcher()。

示例:

我当前的请求来自页面 - webapp / view / core / bar.jsp 和请求的页面 - webapp / view / util / foo.jsp

request.getRequestDispatcher(“../ util / foo.jsp”)有效,将被评估为相对于当前请求的路径。

servletContext.getRequestDispatcher(“/ view / util / foo.jsp”)有效,将从上下文根进行评估。

这是因为ServletContext不会知道当前的请求路径。 如果您决定使用'/'root来访问您的资源,那么两种方式都是相同的。