<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
    http://www.ziyuan8.com/down/Article/Catalog4/12.html

    摘要
      在為服務(wù)器端組件編程時,你很可能要從相對于web根的路徑來取得某個文件的真實路徑,但此文件實際上在站點的一個虛擬路徑上。
    什么是虛擬路徑?
      在一個web服務(wù)器上,虛擬路徑將物理上分離的各文件組合在一起,放在同一個站點路徑上,在應(yīng)用服務(wù)器上,每個應(yīng)用定位于其自己的虛擬路徑上,實際上相互之間有著完美地分離。
    getRealPath()方法
      JSP servlet API提供了getRealPath(path)方法,返回給定虛擬路徑的真實路徑,如果轉(zhuǎn)換錯誤,則返回null。
    getRealPath語法定義:
      public java.lang.String getRealPath(java.lang.String path)
      返回一個字符串,包含一個給定虛擬路徑的真實路徑。例如,虛擬路徑 "/index.html"
    不管在服務(wù)器文件系統(tǒng)上具有怎樣的真實路徑,使用"/index.html"總可以找到它。返回的真實路徑使用了相近于servlet容器(srvlet container)所在計算機或操作系統(tǒng)的格式,包含了適當(dāng)?shù)穆窂椒指舴H绻鹲ervlet容器無法轉(zhuǎn)換則這個方法將返回null。
      參數(shù):
         path -一個描述了虛擬路徑的字符串
      返回值:
         描述真實路徑的字符串或者null
    遺憾的是,getRealPath常常返回不同的東西,這取決于服務(wù)器或jsp文件調(diào)用此方法的路徑位置。
    一個example站點
    假設(shè)我們的站點組織如下:
    根路徑包含了我們的站點的根: http://address/
    a_virtual目錄包含了我們站點提供的虛擬路徑的文件,例如:
    http://addess/virtual_dir/
    我們查找file1.txt和file2.txt的真實路徑,它們一個在站點根路徑下,一個在虛擬路徑下。
    getRealPath("/file1.txt") 應(yīng)該返回“C:\site\site_root\file1.txt",
    getRealPath("/virtual_dir/file2.txt")應(yīng)該返回"C:\site\a_virtual\file2.txt"
    getRealPath("/file3.txt")應(yīng)該返回null,因為這個文件不存在。
    但getRealPath()并不總是返回同樣的結(jié)果,這還取決與你使用的js引擎。
    JSP引擎
    Tomcat 3.1
    Tomcat返回的結(jié)果具有應(yīng)用的獨立性(application dependant):
      它取決與調(diào)用getRealPath方法的那個jsp文件所在的位置。
      實際上,當(dāng)page1.jsp (位于站點根處)對file1.txt和file2.txt調(diào)用txtgetRealPath(), 它返回正確的結(jié)果。(這是在tomcat 3.1, 3.0版則對file2.txt返回錯誤的路徑)
    但是當(dāng)page2.jsp(位于另一個應(yīng)用,在一個虛擬路徑中)調(diào)用getRealPath,它返回了錯誤的路徑:它連接了該jsp文件所在的路徑和請求的虛擬路徑。
      例如,從page2.jsp中調(diào)用getRealPath(/file1.txt)將返回 C:\site\a_virtual\file1.txt。
      這一行為其實是使不同的應(yīng)用相互獨立的典型的處理方法。
    JRun 2.3.3和INPRISE APPLICATION SERVER 4.0 (IAS)
    JRun和IAS對file1.txt和file2.txt都返回正確的結(jié)果。
      然而所有這些引擎有一個共同的行為: 當(dāng)getRealPath處理不存在的文件時,它們都不返回null!
    解決之道
      既然getRealPath總是返回一個路徑,我們怎么知道它是否正確呢?最簡單的方法是檢查這個返回的路徑是否存在。
      這就是isVirtual方法要做的:在對一個給定的文件調(diào)用getRealPath以后,它使用了java.io來
    存取這個文件,于是就可以知道它是否存在。
    /**
    * isVirtual
    *
    * Check if the path name is a virtual or not.
    *
    * @param pathName The name of the path to check.
    */
    private boolean isVirtual(String pathName) {
      // Check if it is a virtual path
      if (m_application.getRealPath(pathName)!=null) {
        java.io.File virtualFile = new java.io.File(m_application.getRealPath(pathName));
        if (virtualFile.exists()) {return true;}
        else {return false;}
      }
      else {return false;}
    }
    posted on 2005-04-27 16:14 笨笨 閱讀(347) 評論(0)  編輯  收藏 所屬分類: J2EEALLJ2SE
    主站蜘蛛池模板: 亚洲国产精彩中文乱码AV| 日产国产精品亚洲系列| 亚洲乱亚洲乱淫久久| 西西人体免费视频| 亚洲大尺度无码无码专区| 最近免费中文字幕中文高清| 亚洲欧洲日产国码无码久久99| 国产在线播放线91免费| 久久亚洲国产精品一区二区| 美女视频黄的免费视频网页 | 国色精品va在线观看免费视频 | 国产成人精品日本亚洲语音| 免费观看a级毛片| 精品成人一区二区三区免费视频| 免费一看一级毛片| 国产免费人成视频尤勿视频 | 午夜时刻免费入口| 精品亚洲视频在线| 国产av无码专区亚洲av果冻传媒 | 亚洲免费一区二区| 免费国产成人α片| 亚洲中文久久精品无码1| 色吊丝最新永久免费观看网站| 国产精品成人亚洲| 亚洲Av无码专区国产乱码DVD| 四虎免费影院ww4164h| 小说专区亚洲春色校园| 亚洲日韩精品射精日| 7723日本高清完整版免费| 美女免费视频一区二区| 亚洲国产成人一区二区精品区| 国产麻豆视频免费观看| 国产va免费精品| 亚洲综合综合在线| 亚洲精品一级无码中文字幕| 日韩精品人妻系列无码专区免费 | 好爽好紧好大的免费视频国产| 国产又黄又爽又大的免费视频| 亚洲中文字幕无码av在线| 亚洲国产成人久久综合一区77| 91精品手机国产免费|