在重定向,轉發中關於路徑問題的總結

①絕對路徑與相對路徑的區分:

絕對路徑爲前面加上了“/”的路徑,而相對路徑則前面沒有加上“/”。

②轉發與重定向中的具體討論: 

        轉發:轉發當中使用帶“/”的絕對路徑時,表示的是當前web應用的根目錄再加上傳入的目錄,因爲轉發是在服務器內部進行的,寫絕對路徑/開頭指的是當前的Web應用程序 

   eg: 假設當前的web應用目錄爲http://localhost:8080/web-app  執行req.getRequestDispatcher("/login.jsp")  則這個時候轉到的目錄爲 http://localhost:8080/web-app/login.jsp

                         而當轉發中使用的是不帶“/”的相對路徑的時候,表示的是當前的路徑再加上傳入的路徑

  eg:假如當前的路徑爲http://localhost:8080/web-app/abc  執行req.getRequestDispatcher("login.jsp") 則這個時候轉到的目錄爲  http://localhost:8080/web-app/abc/login.jsp



        重定向:重定向中使用帶“/”的絕對路徑時,表示的是當前服務器的根目錄再加上傳入的目錄!

 eg: 假設當前的web應用目錄爲http://localhost:8080/web-app 執行   res.sendRedirect("/login.jsp") 則這個時候轉到的目錄爲   http://localhost:8080/login.jsp 

                             而當轉發中使用的是不帶“/”的相對路徑的時候,表示的是當前的路徑再加上傳入的路徑(和轉發的時候一樣)

 eg:假如當前的路徑爲http://localhost:8080/web-app/abc 執行req.getRequestDispatcher("login.jsp") 則這個時候轉到的目錄爲  http://localhost:8080/web-app/abc/login.jsp

③絕對路徑中的“/”代表的不同情況下的不同意思的再總結

              > “/”代表站點路徑 即  http://localhost:8080的情況


                        1.超鏈接的時候 
                    2.action表單提交的時候
                    3.請求重定向的時候

              >“/”代表的時web應用的根目錄 即http://localhost:8080/Context的情況(可利用request.getContext( ) ,                或者 application.getContext( ) 來獲取)

                        1.請求轉發的時候

                   2.在  web.xml 文件中進行配置的時候,例如URL的配置的時候


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