轉帖|其它|編輯:郝浩|2010-07-23 09:25:43.000|閱讀 633 次
概述:用Java開發Web應用時,無論是Jsp頁面、Servlet或是web.xml配置文件中都涉及到路徑的問題,而這又是初學者較容易混淆的地方,往往不知道如何寫路徑。其實服務器端和客戶端在處理路徑的方式上不一致,因此需要根據不同的情況寫出正確的路徑。下面通過例子來說明。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
用Java開發Web應用時,無論是Jsp頁面、Servlet或是web.xml配置文件中都涉及到路徑的問題,而這又是初學者較容易混淆的地方,往往不知道如何寫路徑。其實服務器端和客戶端在處理路徑的方式上不一致,因此需要根據不同的情況寫出正確的路徑。下面通過例子來說明。
假設Web應用road中,應用的根路徑下有一個dir1文件夾和dir2文件夾。c.jsp在dir1中,a.jsp和b.jsp在dir2中。Web應用的結構如圖所示。
+ root
-dir1
c.jsp
-dir2
a.jsp
b.jsp
JSP頁面中正確的路徑表示 假設在a.jsp頁面中有兩個鏈接,分別鏈接到b.jsp和c.jsp頁面。
直接寫路徑表示和頁面在同一個文件夾下面,如<a href="b.jsp">b.jsp</a>
"../"表示當前文件夾的上一級文件夾(相對路徑),如: <a href="../dir2/b.jsp">b.jsp</a>,
<a href="../dir1/c.jsp">c.jsp</a>
"/"表示 //機器IP:8080(絕對路徑),如: <a href="/road/dir2/b.jsp">b.jsp</a>
<a href="/road/dir1/c.jsp">c.jsp</a>
Servlet中正確的路徑表示
轉發請求時:"/"表示“//服務器IP:8080/Web應用名”,例如: String forward = "/dir1/c.jsp";
RequestDispatcher rd = request.getQRequestDispatcher(forward);
重定向時:“/” 表示“//機器IP:8080”,而通過request.getContextPath()得到的是:“//機器IP:8080/Web應用名”,例如: String str = request.getContextPath();
response.sendRedirect(str + "/dir1/c.jsp");
配置文件web.xml中 url-mapping中,"/"表示“//IP地址:8080/Web應用名”
總結
在瀏覽器端:“/”表示的是一臺WEB服務器,“//機器IP:8080”
在服務器端(請求轉發):“/”表示的是一個WEB服務器端的應用,“//機器IP:8080/Web應用”
在服務器端(重定向):“/”表示的是一個WEB服務器,“//機器IP:8080”
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載