来自servletcontext的RequestDispatcher与请求

时间:2014-11-13 17:20:32

标签: servlets requestdispatcher

这两个代码行有什么不同,我们何时应该使用它们?

1

RequestDispatcher view = request.getRequestDispatcher(“result.jsp”);

2

RequestDispatcher view = getServletContext().getRequestDispatcher(“/result.jsp”);

1 个答案:

答案 0 :(得分:4)

1)RequestDispatcher view = request.getRequestDispatcher(“result.jsp”);

在这里,

  • 视图与当前请求相关。你必须传递jsp / html的相对路径
  • 用于在同一个Web应用程序中链接两个Servlet。

java doc说,

  

指定的路径名​​可能是相对的,但不能扩展   在当前servlet上下文之外。如果路径以" /"开头它   被解释为相对于当前上下文根。这种方法   如果servlet容器无法返回a,则返回null   RequestDispatcher的。

     

这种方法与之间的区别   ServletContext.getRequestDispatcher(java.lang.String)就是这个   方法可以采取相对路径。

2)RequestDispatcher view = getServletContext()。getRequestDispatcher(“/ result.jsp”);

在这里,

  • view是相对于Servlet上下文的根,你必须传递jsp / html的绝对路径
  • 用于在同一/不同服务器中链接两个Web应用程序。

java doc说,

  

路径名必须以" /"开头。并被解释为相对于   当前的上下文根。使用getContext获取RequestDispatcher   对于外国环境中的资源。如果是,则此方法返回null   ServletContext无法返回RequestDispatcher。