HI 我想知道在Servlet Request和ServletContext接口中有一个名为getRequestDispatcher()的方法。有什么不同?
答案 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来访问您的资源,那么两种方式都是相同的。