①絕對路徑與相對路徑的區分:
絕對路徑爲前面加上了“/”的路徑,而相對路徑則前面沒有加上“/”。
②轉發與重定向中的具體討論:
轉發:轉發當中使用帶“/”的絕對路徑時,表示的是當前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的情況
>“/”代表的時web應用的根目錄 即http://localhost:8080/Context的情況(可利用request.getContext( ) , 或者 application.getContext( ) 來獲取)
1.請求轉發的時候
2.在 web.xml 文件中進行配置的時候,例如URL的配置的時候