当前位置: 代码迷 >> 综合 >> ServletRequest 对象的 getRequestDispatcher 和 ServletContext 对象的 getRequestDispatcher 的区别。
  详细解决方案

ServletRequest 对象的 getRequestDispatcher 和 ServletContext 对象的 getRequestDispatcher 的区别。

热度:69   发布时间:2023-10-23 22:44:53.0

ServletContext 对象 的 getRequestDispatcher (java.lang.String path)  的官方文档

The pathname must begin with a "/" and is interpreted as relative to the current context root. 

路径名必须以 “ / ” 开始,路径相对于在当前上下文的根目录之下

比如,在 web.xml 中,有

<servlet-mapping>
      <servlet-name>ServletTest123</servlet-name>
      <url-pattern>/comment/ServletTest123</url-pattern>

</servlet-mapping>

path 应为 /comment/ServletTest123

ServletRequest 对象的 getRequestDispatcher (java.lang.String path)  的官方文档

The pathname specified may be relative, although it cannot extend outside the current servlet context. If the path begins with a "/" it is interpreted as relative to the current context root. This method returns null if the servlet container cannot return a RequestDispatcher.

路径如果以 “ / ” 开始,路径相对于在当前上下文的根目录之下,否则则视为相对于当前 servlet 路径的父目录下

比如,当前servlet 名称是 ServletTest123 ,在 web.xml 中,有

<servlet-mapping>
      <servlet-name>ServletTest123</servlet-name>
      <url-pattern>/comment/ServletTest123</url-pattern>

</servlet-mapping>

 

<servlet-mapping>
      <servlet-name>ServletTest456</servlet-name>
      <url-pattern>/comment/ServletTest456</url-pattern>

</servlet-mapping>

现在通过 ServletRequest 对象 获取 servletTest456 的  RequestDispatcher 对象

第一种 path参数:("/comment/ServletTest456")

第二种 path参数:("ServletTest456")

阐述两者区别  的官方文档

The difference between this method and ServletContext.getRequestDispatcher(java.lang.String) is that this method can take a relative path.

 ServletRequest  和 ServletContext 的 getRequestDispatcher(java.lang.String) 方法的区别是 ServletRequest  既支持

相对于在当前上下文的根目录的参数(以 "/" 开头),还支持 相对于当前 servlet 路径的父目录 的参数,而 ServletContext只支持 相对于在当前上下文的根目录的参数(以 "/" 开头)

 

  相关解决方案