ServletRequest 對象的 getRequestDispatcher 和 ServletContext 對象的 getRequestDispatcher 的區別。

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只支持 相對於在當前上下文的根目錄的參數(以 "/" 開頭)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章