<%
string path = request.getcontextpath();
string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
<%system.out
.println("basepath:"+basepath); %>
<%system.out
.println("path:"+path); %>
結果為:
path:/item_bankbasepath後面帶了乙個「/」個哦~,這個各位注意一下
看的出來basepath就是絕對路徑
path是相對路徑
當我們在表單提交的時候,可以使用相對路徑:
"<%=path+"/" %>registservlet"
method="post">
注意就是path後面要帶上「/」
當然還可以使用相對路徑:
action="<%=basepath %>registservlet"
method="post">
web.xml裡面正常寫就可以了,多層也無妨!即(/servlet/registservlet)
最後有乙個:">
當我們使用:">
的時候
那麼我們可以直接寫:
action="registservlet"
method="post">
因為,使用了">
,就相當於之後的相對路徑在鏈結時都將在前面加上基鏈結指向的位址。即變成了:
http://localhost:8080/item_bank/registservlet這個了
若是不使用的話,那麼就是相當於在當成資料夾下面尋找,可是當前是有個新的資料夾包裹住的,是為了分類嘛,所以這裡相對路徑要想能夠有效的找到registservlet的url就要使用:
action="../registservlet"
method="post">
這樣就可以了!
base標記是乙個基鏈結標記,是乙個單標記。用以改變檔案中所有鏈結標記的引數內定值。它只能應用於標記與head>之間。
重要屬性:
href
設定字首的鏈結位址
target
設定檔案顯示的視窗,同a標記中的target
簡單例子:
base標記title>
rel="shortcut icon"
href="ani.cur">
head>
href="77.htm"
target="_self">77a>
href="88.htm">88a>
body>
html>
當點了鏈結後,跳出的檔案是/77.htm或/88.htm,它就是在這些相對路徑的檔案前加上基鏈結指向的位址。如果目標檔案中的鏈結沒有指定target屬性,就用base標記中的target屬性。
常在框架結構中用,如左右兩個框架,把左邊的框架中檔案裡的連線都顯示在右邊的框架裡。只要用base標記,把其target屬性值寫為右框架名稱,這就不用再為左框架裡的檔案中的每乙個連線都指定target屬性。
當使用時,base 元素必須出現在文件的 head 內,在任何對外部源的引用之前。
此元素在 microsoft? internet explorer 3.0 的 html 中可用,在 internet explorer 4.0 的指令碼中可用。
此元素不會被渲染。
此元素不需要關閉標籤。
JSP頁面的basePath路徑的問題
利用myeclipse建立jsp頁面時會自動加上 html string path request getcontextpath string basepath request getscheme request.getservername request.getserverport path ht...
關於獲取應用basePath
request.getscheme 等到的是協議名稱,預設是http request.getservername 得到的是在伺服器的配置檔案中配置的伺服器名稱 比如 localhost baidu.com 等等 request.getserverport 得到的是伺服器的配置檔案中配置的埠號 比如 ...
jsp中的basePath,獲取應用的路徑
1 2 3 4 5 string path request.getcontextpath string basepath request.getscheme request.getservername request.getserverport path request.getschema 可以返回...