隨筆 - 12  文章 - 20  trackbacks - 0
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          一. 問題

              JSP 中究竟采用絕對路徑還是采用相對路徑隨著所采用技術(shù)的越來越復(fù)雜,這個問題也變得越來越難以解決。

          1) 采用相對路徑遇到的問題

          l          相對路徑固然比較靈活,但如果想復(fù)制頁面內(nèi)的代碼卻變得比較困難,因為不同的頁面具有不同的相對路徑,復(fù)制后必須修改每一個連接的路徑。

          l          如果頁面被多于一個的頁面所包含,那么被包含頁面中的相對路徑將是不正確的。

          l          如果采用 Struts Action 返回頁面,那么由于頁面路徑與 Action 路徑不同,使得瀏覽器無法正確解釋頁面中的路徑,如頁面為 /pages/cust/cust.jsp ,圖片所有目錄為 /images/title.gif ,這時在 /pages/cust/cust.jsp 中的所用的路徑為 ”../../images/title.gif” ,但是如果某一個 Action Forward 指向這個 JSP 文件,而這個 Action 的路徑為 /cust/manage.do ,那么頁面內(nèi)容中 ”../../images/title.gif” 就不再指向正確的路徑了。

          解決以上問題似乎只有使用絕對路徑了。

          2) 采用絕對路徑遇到的問題

          l          隨著不同的 Web 應(yīng)用發(fā)布方式,絕對路徑的值也不同。如 Web 應(yīng)用發(fā)布為 MyApp ,則路徑 ”/MyApp/images/title.gif” 是正確的,但發(fā)布為另一應(yīng)用時如 MyApp2 ,這個路徑就不對了,也許這個情況比較少,但以 default 方式發(fā)布 Web 應(yīng)用時以上絕對路徑也不同: ”/images/title.gif”

          二. 解決方案

           

           

          1) 采用絕對路徑,但為了解決不同部署方式的差別,在所有非 struts 標(biāo)簽的路徑前加 ${pageContext.request.contextPath} ,如原路徑為:

          ”/images/title.gif” ,改為

          “${pageContext.request.contextPath}/images/title.gif”

          代碼 ” ${pageContext.request.contextPath}” 的作用是取出部署的應(yīng)用程序名,這樣不管如何部署,所用路徑都是正確的。

          缺點:

           

           

           

          操作不便,其他工具無法正確解釋 ${pageContext.request.contextPath}

          2) 采用相對路徑,在每個 JSP 文件中加入 base 標(biāo)簽,如:

          <base href="http://${header['host']}${pageContext.request.contextPath}/pages/cust/relation.jsp" />

          這樣所有的路徑都可以使用相對路徑。

          缺點:

           

           

           

          對于被包含的文件依然無效。

              真正使用時需要靈活應(yīng)用1)和2),寫出更加健壯的代碼。

          posted on 2008-12-25 12:20 沖出銀河系 閱讀(2069) 評論(0)  編輯  收藏 所屬分類: java

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桂阳县| 仁化县| 黄陵县| 金堂县| 邛崃市| 南丹县| 民和| 淮南市| 巧家县| 麻江县| 青岛市| 渝中区| 龙井市| 岳阳市| 金塔县| 历史| 宁武县| 兴化市| 如皋市| 尚志市| 财经| 肃宁县| 长沙县| 循化| 临汾市| 湟中县| 寿光市| 修水县| 和平区| 西峡县| 盖州市| 昭觉县| 太湖县| 柞水县| 丹寨县| 乌海市| 鄂州市| 大姚县| 乌鲁木齐县| 陆良县| 深水埗区|