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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

request.getcontextPath() 详解

發布時間:2025/4/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 request.getcontextPath() 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

<%=request.getContextPath()%>是為了解決相對路徑的問題,可返回站點的根路徑。

?

但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">也行,這兩個文件是在同一個目錄下的。比如你要生成一個文件放在服務器上得一個目錄下,可以使用request.getContextPath()+/dir,組成一個完整得目錄結構!

?

但在JSP文件里,有時通過request.getContextPath()得到的路徑卻為空,為什么?

context中沒有配置path屬性,所以你的工程文件就是在根目錄下,相當于path="";

即是你直接在瀏覽器中輸入你的服務器ip就會到你的jsp頁面,而不是tomcat的默認頁面;所以你通過request.getContextPath()得到的字符串是為空的;它是獲得虛目錄的;

?

如果你想得到工程文件的實際物理路徑,可通過:<%=request.getRealPath("/")%>,這樣頁面就會輸出:d:/web。參考servlet中的接口:

?

request.getScheme(); 返回的協議名稱,默認是http

?

request.getServerName() 返回的是你瀏覽器中顯示的主機名,你自己試一下就知道了

?

getServerPort() 獲取服務器端口號

?

request.getContextPath()應該是得到項目的名字,如果項目為根目錄,則得到一個"",即空的字條串。如果項目為abc, <%=request.getContextPath()% > 將得到abc,服務器端的路徑則會自動加上,<a href="XXXX.jsp"> 是指當前路徑下的這個xxx.jsp頁面,有時候也可以在head里設置html:base來解決路徑的問題,不過用的最多的還是request.getContextPath。

?

在js文件中得到request.getContextPath()的值,不想在JSP中寫太多的Javascript代碼:

一種方法是用hidden:

<input type=hidden name=contextPath value=<%= request.getContextPath()>

?

?

再就是在本頁面的js里面也是可以使用Scriptlet來賦值的: var a = '<%= request.getContextPath()>'

或者你賦值給一個hidden的控件都是可以的,然后js取,這樣js可以不用寫在jsp里。

?

實際應用中,一般用來解決jsp測試和生產環境路徑不同的問題:

<% String appContext = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort() + appContext; %>

總結

以上是生活随笔為你收集整理的request.getcontextPath() 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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