第一種情況 :直接訪問jsp檔案
url是 http://localhost/context path/jsp/index.jsp
要在index.jsp引用go.gif檔案:
1、使用決對路徑
瀏覽器尋找方式: 網域名稱+/context path/images/go.gif ,可找到。
2、使用相對路徑
瀏覽器尋找方式:通過位址列分析,index.jsp所在目錄(jsp)的上一層目錄(webroot)下的images/go.gif檔案 。
3、使用base href
寫太麻煩,可以在每乙個jsp檔案頂部加入以下**
">
瀏覽器尋找方式: basepath的值http://localhost/context path/再加上images/go.gif,可找到。
第二種情況: servlet**到jsp
1、使用相對路徑
url是http://localhost/context path/servlet_2 **發到/jsp/index.jsp)
錯誤:根據/jsp/index.jsp路徑計算,得到
正確:原因:index.jsp是儲存在伺服器端的/jsp/index.jsp目錄下面,但通過**後瀏覽器並不知道/jsp/目錄的存在,因為位址列中沒有體現出來。所以伺服器端/jsp/目錄並不會對相對路徑產生影響
瀏覽器尋找方式:通過位址列分析http://localhost/context path/servlet_2 ,相對於servlet_2所在目錄(/)下面找到images/go.gif檔案
2、使用相對路徑
url是http://localhost/context path/servlet/ser/ser/servlet_1 **發到/jsp/index.jsp)
「/servlet/ser/ser/servlet_1 是在web.xml檔案配置的
錯誤:根據/jsp/index.jsp路徑計算,得到
正確:
原因:index.jsp是儲存在伺服器端的/jsp/index.jsp目錄下面,但通過**後瀏覽器並不知道/jsp/目錄的存在,因為位址列中沒有體現出來。所以伺服器端/jsp/目錄並不會對相對路徑產生影響
瀏覽器尋找方式:通過位址列分析http://localhost/context path/servlet/ser/ser/servlet_1,相對於servlet_1所在目錄(ser)的上一層目錄的上一層目錄的上一層目錄(/)下的images/go.gif檔案
3、使用決對路徑
jsp中獲取根路徑的方法
1.pagecontext本身就是乙個域物件,他表示當前jsp頁面的執行環境,該物件可以操作另外三個域 request域,session域,servletcontext域 這裡,pagecontext物件中有getrequest 方法,所以,在使用el表示式時,省略get,並將request變成小寫...
jsp中的basePath,獲取應用的路徑
1 2 3 4 5 string path request.getcontextpath string basepath request.getscheme request.getservername request.getserverport path request.getschema 可以返回...
jsp路徑問題
今天在intellij idea 中做的專案 提交到svn 同事檢出後 發現各種資源找不到 或者請求的路徑不正確 這是由於在idea中部署的專案是根路徑 而同事部署不是的 搞得有點鬱悶 最後發現乙個號辦法 在jsp中新增標籤專案中所有的路徑都是相對base路徑的就好了 如下 string path ...