1. web項目中的路徑問題
1)URL
1.統一資源定位符:用于唯一定位網際網路上的一個資源
2.格式:協定://域名(ip):端口号/項目路徑/資源路徑
- 1.http://localhost:8080/Servlet09 /admin/listEmp
- 2.https://www.baidu.com
2)路徑的2種寫法
1.相對路徑
- 1.從目前檔案到目标檔案的路徑稱為相對路徑
- 2.目前檔案位置不同,相對路徑也不同
- 3.相對路徑的寫法:“css/style.css”, “…/css/style.css 或 …/…/css/style.css” (不以 “/” 開頭)
- 4.相對路徑不能 拿來直接通路網際網路上的資源,必須由浏覽器拼接成完整的url ,才能通路網際網路上的資源
- 5.可以在html頁面中添加一個
,為目前頁面指定一個父路徑,供拼接路徑使用 以上拼接完成後,會多一個admin<base href="路徑" target="_blank" rel="external nofollow" >
- 6.相對路徑表示
2.絕對路徑
- 1.從一個固定位置到目标檔案的路徑稱為絕對路徑,一般是項目的根目錄
- 2.目前檔案位置對絕對路徑沒有影響
- 3.絕對路徑要以“/”開頭 ,或者 "http://…"
- 4.可以利用html提供的base标簽解決這一問題。以下操作在
标簽中實作<head>
<!-- 靜态設定 -->
<!-- 在head标簽中,設定<base>,指定目前頁面的父路徑。例如: -->
<base href="http://localhost:8080/Servlet09/">
<!-- 一般用動态生成 -->
<%String path=request.getContextPath();
//動态生成basePath,後期路徑變化,代碼不用修改
String bsePath=request.getScheme()+"://"
+request.getServerName()+":"
+request.getServerPort( )+path+"/";
%>
<!-- 用于指定目前頁面的父路徑,供拼接路徑使用 -->
<!-- 格式href="協定://域名:端口号/項目路徑/" -->
<base href="<%=basePath %>">
3)html中出現的路徑:
- 1.
<a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >
- 2.
<img src="">
- 3.
<form action="">
- 3.
<script src="">
- 4.
<link href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >
3.Servlet中的路徑:
- 1.請求轉發:路徑中不應該包含項目映射的路徑
- 1.請求轉發login.jsp
- 1.request.getRequestDispatcher("/login.jsp");
- 1.請求轉發login.jsp
- 2.請求重定向:路徑中需要包含目前項目映射的路怪
- 1.重定向到login.jsp
- 1.response.sendRedirect("/Servlete09/login.jsp");
- 1.重定向到login.jsp
- 3.如何記憶:
- 1.請求轉發的目标有限制:隻能是目前項目内部的資源
- 2.請求重定向的目标沒有限制,是以必須添加項目路徑來限定