1、jsp頁面
src="../demo/clazz/clazz_add.js"與src="<c:url value='/demo/clazz/clazz_index.js'/>"
鏈接的文件路徑是一致的,一個相對路徑,一個是絕對路徑
2、struts2配置文件javascript
<package name="clazz" namespace="/clazz" extends="default"> <action name="index" class="clazzAction" method="index"> <result name="success">demo/clazz/clazz_index.jsp</result> </action> </package>
跳轉路徑爲:
/demo/clazz/demo/clazz/clazz_index.jsp
表示的是:到當前項目下找clazz文件夾下的demo文件夾下的clazz文件夾下的demo文件夾下的clazz文件夾下的clazz_index.jsp
加上/後,css
<result name="success">/demo/clazz/clazz_index.jsp</result>
跳轉路徑爲:localhost:8080/demo/demo/clazz/clazz_index.jsp
加上"/"表示,訪問路徑會忽略掉namespace;
說明:若是訪問路徑不須要加上namespace,則在跳轉頁面前加"/";通常都要加"/"
請求路徑爲:clazz/index.do(index.action)
重定向問號傳參${}
3、協議-端口號-路徑html
request.getContextPath(); //獲取項目根路徑:/test
request.getScheme(); //協議名稱:http
request.getServerName() //域名:localhost
request.getServerPort() //服務器端口號:8080
<% String path = request.getContextPath();<%-- 一般用的是這個 --%> String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; %>
path = "/test";
basePath = "http://localhost:8080/test"
4、使用<c:url></c:url>表示路徑java
<c:url value=''></c:url> <!-- 什麼也不顯示 --><br> <c:url value='/'></c:url> <!-- /test/ --><br>表明的是項目名 <c:url value='/index.jsp'></c:url> <!-- /test/index.jsp -->
UpdateTime--2017年6月2日08:25:55web
6、WEB項目找不到對應的js文件 ajax
使用絕對路徑來引用js文件:json
<script type="text/javascript" src="<c:url value="/telemedicine/remoteRese/consAppl/viewAdd_search.js"/>"></script>
而不是用相對路徑tomcat
<script type="text/javascript" src="viewAdd_search.js"></script>
7、WEB項目找不到對應的圖片服務器
使用絕對路徑jsp
方式一:使用<c:url></c:url>標籤體
<img src="<c:url value="/telemedicine/remoteRese/consAppl/image/cxlr.png"></c:url>"/>
方式二:使用小腳本
<img src="<%=request.getContextPath()%>/telemedicine/remoteRese/consAppl/image/cxlr.png"/>
而不是使用相對路徑
<img src="image/cxlr.png"/>
UpdateTime--2017年8月18日15:30:09
8、相對路徑與絕對路徑
8.1 絕對路徑
web項目不可能使用絕對路徑,由於:
以文件的引用爲例,tomcat會將項目發佈到webApps文件夾下,因此文件的引用不能使用文件所在的磁盤位置
8.2 相對路徑
狀況一:嚴格意義上的相對路徑
在頁面上用來表示路徑的任何HTML標籤的已知屬性,都必須使用這種路徑引用方式:"/" + 應用程序名稱" + "相對於WebContent/WebRoot"的路徑;
8.2.1 引入CSS文件
<link type="text/css" rel="stylesheet" href="<c:url value="/telemedicine/remoteRese/consAppl/entry.css"/>" />
8.2.2 引入js文件
<script type="text/javascript" src="<c:url value="/telemedicine/remoteRese/consAlready/consAleady_index.js"/>"></script>
8.2.3 a標籤跳轉頁面
<a style="color: #199ED8;" href="${pageContext.request.contextPath }/telemedicine/reseCons/index.do?RESULT_TYPE=modelAndView1&PATIENT_ID=${row.PATIENT_INFO_ID }&ORG_ID=${row.ORG_ID }&CONSULT_APPLY_ID=${row.CONSULT_APPLY_ID }&CONSULT_STATUS=${row.CONSULT_STATUS }"> 查看詳細信息 </a>
8.2.4 img標籤
<img src="<%=request.getContextPath()%>/telemedicine/remoteRese/consAppl/image/cxlr.png">
8.2.5 發送Ajax請求
第一步:
<script type="text/javascript">var baseUrl="<%=request.getContextPath()%>";</script>
第二步:
$.ajax({ type:"post", url: baseUrl + "/telemedicinet/consult/add.do", data:{CONSULT_DEPENT_ID:CONSULT_DEPENT_ID,CONSULT_DEPENT:CONSULT_DEPENT,CONSULT_DOCTOR_ID:CONSULT_DOCTOR_ID,CONSULT_DOCTOR:CONSULT_DOCTOR,DOCTOR_PHONE:DOCTOR_PHONE, CONSULT_APPLY_ID:CONSULT_APPLY_ID}, success: function(result) { DEPENT_DOCTOR_INFO_ID = result.id; message = result.msg + "," + DEPENT_DOCTOR_INFO_ID; }, dataType: "json" });
8.2.6 提交form表單
小結:
爲何8.2.1-8.2.5這五種狀況必需要使用"/" + 應用程序名稱" + "相對於WebContent/WebRoot"的路徑?
a.請求路徑和響應的頁面所在的路徑並不必定一致;
請求路徑:
返回的文件所在路徑:
其一,請求路徑爲:"http://127.0.0.1:8060/ycyl/telemedicine/patient/index.do?RESULT_TYPE=modelAndView1",響應的內容所在路徑爲:"/telemedicine/remoteRese/consAlready/consAleady_records.jsp";
其二,響應方式設置成了轉發,而使用轉發,URL不會發生變化(由於客戶端只發送了一次請求)。
小結:
請求路徑與響應路徑不一致而且使用轉發,兩個條件同時知足時,必須使用嚴格意義上的相對路徑。
b.這些標籤表示路徑的屬性所共有特性:會自動爲其補全路徑;
補全方式:
在響應的頁面標籤上
第一種:表示路徑屬性的值(不加"/")自動在前面追加當前的請求前綴, 如:"http://127.0.0.1:8060/ycyl/telemedicine/patient"
第二種:自動在前面追加當前服務器前綴(加"/"),如:"http://localhost:8080"
c.爲何要加"/"?
表示路徑屬性的值不加"/",會出現b中的第一種狀況;表示路徑屬性的值加"/",會出現b中的第二種狀況。
在a和b的做用下,只能選擇加"/",這種方式,咱們對於路徑定義有更大的自由權
d.爲何要加上「引用程序名稱」?
不加上發佈在服務器上的應用程序的名稱,就更不用說訪問該程序下的內容了。
e.form表單提交路徑
form表單的提交一般是在當期路徑上進行提交,固然,若是要提交的路徑和當前請求路徑不一致時,需使用嚴格意義上的相對路徑。
更多示例見文章:a標籤
狀況二:非嚴格意義上的相對路徑
include標籤引用文件或外部css文件引用圖片所在路徑時,
若是同級直接寫被引用文件的全稱;若是是下級文件,」下級文件夾/被引用文件的全稱「;若是是上級文件夾,」上級文件夾/被引用文件的全稱「。
圖例:
jsp:include標籤
外部CSS文件
9、網址最後加「/"與不加"/"的區別
參考地址:http://bbs.csdn.net/topics/340200371
1.http://www.abc.com/abc
2.http://www.abc.com/abc/
區別:
對於用戶來講,在大多數狀況下這兩個網址沒有任何區別,他們訪問的都是網站abc目錄下的默認首頁。通常用戶也都知道最後一個斜槓是無關緊要的,他們輸入網址的時候通常都只會輸入http://www.abc.com/abc。
當Web服務器接收到對某個末尾不含斜槓的url請求時,例如「http://www.abc.com/abc」,這時服務器會搜索網站根目錄下有沒有名爲「abc」的文件,若是沒有就把abc當作目錄處理,而後返回abc目錄下的默認首頁。當Web服務器接收到的是末尾帶斜槓的請求時就會直接當作目錄處理。