5

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

1.

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

2.

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

1 回答 1

5

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

这里,

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

java文档说,

指定的路径名​​可以是相对的,尽管它不能扩展到当前 servlet 上下文之外。如果路径以“/”开头,则将其解释为相对于当前上下文根。如果 servlet 容器无法返回 RequestDispatcher,则此方法返回 null。

该方法与 ServletContext.getRequestDispatcher(java.lang.String) 的区别在于该方法可以采用相对路径。

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

这里,

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

java文档说,

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

于 2014-11-13T17:56:58.623 回答