日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML的相关路径与绝对路径的问题---通过网络搜索整理

發布時間:2024/1/17 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML的相关路径与绝对路径的问题---通过网络搜索整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述:
 ?? 在webroot中有個index.jsp?在index.jsp中寫個表單。
  現在在webroot中有個sub文件夾,sub文件夾中有個submit.jsp想得到index.jsp表單的數據

  index.jsp
  < form?action="????這邊要怎么寫才才能指向submit.jsp"?method="post">

    數據

  < /form>

?

問題解決:

HTML的相關路徑與絕對路徑的問題。
先看一下下面的URL:
http://192.168.1.1:8080/hello/index.html
一個URL由
服務器地址:?http://192.168.1.1:8080
WEB應用上下文:??/hello
網頁或請求:??/index.html
三個部分組成。
WEB應用發布時,WEB應用上下文可以自行指定,如放在ROOT/下的話,WEB應用上下文就是空,如:
http://192.168.1.1:8080/index.html
它的WEB應用上下文就是空。

HTML協議中要求,form的action屬性,以“/”開頭是絕對路徑,不以“/”開頭的是相對路徑。
絕對路徑是相對于服務器地址而言的,相對路徑是相對于當前網頁或請求而言的。
舉一個例子,你的當前網頁位置是:
http://192.168.1.1:8080/hello/page/index.html
其中/hello是WEB應用上下文;/page/index.html是網頁。
在這個網頁上有一個請求需要指向
http://192.168.1.1:8080/hello/servlet/checkUser.cgi
index.html中的form應該怎么寫呢?
可以寫成絕對路徑(相對于http:/192.168.1.1:8080)
< form?action="/hello/servlet/checkUser.cgi"?>
...
< /form>
也可以寫成相對路徑(相對于http://192.168.1.1:8080/hello/page)
< form?action="../servlet/checkUser.cgi"?>
...
< /form>

當前如果你的WEB應用是基于JSP的話,有許多第三方的標簽庫如JSTL或基于Struts的標簽庫都可以在form中自動為你加上WEB應用上下文,如二樓東走西顧的例子。
如果你準備在JSP使用基本語句生成網頁的話,六樓honglei915提供了一個很好的例子,只不過“/”更規范一些,如:
< %!String?basePath=request.getContextPath();%>?
< form?action="<%=basePath%>/sub/submit.jsp"?method="post">?
< /form>?

?

在JSP中,腳本化語言如“<%=contextPath%>”可以從page,request,session及application中取值。
下面的代碼可以看到結果是因為contextPath被保存在page中:
< %?String?contextPath?=?request.getContextPath();?%>
< form?action="<%=contextPath%>/sub/submit.jsp"?method="post">?
< /form>?

EL表達式如“${contextPath}”只能從request,session及application中取值。
上述代碼修改一下就可以支持EL表達式:
< %?
??String?contextPath?=?request.getContextPath();?
??//?將contextPath保存到request中
??request.setAttribute("contextPath",?contextPath);
%>
< form?action="${contextPath}/sub/submit.jsp"?method="post">?
< /form>?

?

?

另外還有兩個方法:

方法一:
< %!String?basePath=request.getContextPath();%>
< form?action="<%=basePath%>\sub\submit.jsp"?method="post">?
< /form>

basePath?是你項目的根路徑,推薦這樣做,不管以后你的sub?文件夾怎么移動,都是可以成功提交的。

使用這個方法需要理解"<%=basePath%>是什么

關于"<%=basePath%>的理解請參考:http://www.cnblogs.com/fifiyong/p/JSP.html

方法二:

<form?action="${pageContext.request.contextPath}/sub/submit.jsp"?method="post">?
< /form>?

${pageContext.request.contextPath}等價于<%=request.getContextPath()%> 或者可以說是<%=request.getContextPath()%>的EL版 意思就是取出部署的應用程序名或者是當前的項目名稱

比如項目名稱是ajax01 在瀏覽器中輸入為http://localhost:8080/ajax01/login.jsp ${pageContext.request.contextPath}或<%=request.getContextPath()%>取出來的就是/ajax01,而"/"代表的含義就是http://localhost:8080

所以我們項目中應該這樣寫${pageContext.request.contextPath}/login.jsp

?

轉載于:https://www.cnblogs.com/fifiyong/p/HTML.html

總結

以上是生活随笔為你收集整理的HTML的相关路径与绝对路径的问题---通过网络搜索整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。