摘要
在為服務(wù)器端組件編程時,你很可能要從相對于web根的路徑來取得某個文件的真實路徑,但此文件實際上在站點的一個虛擬路徑上。
什么是虛擬路徑?
在一個web服務(wù)器上,虛擬路徑將物理上分 " /> 亚洲欧美国产综合在线,国产午夜精品福利久久,在线免费观看a视频

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

在JSP中處理虛擬路徑


摘要
在為服務(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;}

jsp技術(shù)在JSP中處理虛擬路徑,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产自拍视频在线一区 | 鸡鸡插屁股 | 综合久久久久久久综合网 | 国产成人午夜精品免费视频 | 亚洲日本欧美产综合在线 | 久久高清一级毛片 | 亚洲乱码一区二区三区香蕉 | 国产午夜婷婷精品无码A片 国产午夜视频在永久在线观看 | 父皇轻点插好疼H限 | 大桥未久在线看 | 俄罗斯爱爱| 黄色a三级三级三级免费看 黄色a三级免费看 | x69老师x日本 | 亚洲国产精品热久久 | 成人国产精品日本在线 | 在线精品国精品国产不卡 | 久久国产精品人妻中文 | 亚洲欧美色综合影院 | 萝莉御姐被吸奶 | 91av影院| 国产欧美一区二区精品久久久 | 白丝女仆被强扒内裤 | 中文字幕日本久久2019 | 免费无码又爽又黄又刺激网站 | 午夜理论电影在线观看亚洲 | 极品网红液液酱粉嫩福利照子凌酱 | 成人久久欧美日韩一区二区三区 | 麻豆高潮AV久久久久久久 | a级男女性高爱潮高清试看 A级毛片无码久久精品免费 | 国产午夜精品视频在线播放 | 成年色黄APP下载 | 九九色精品国偷自产视频 | 国产爱豆剧果冻传媒在线 | 国精产品一区一区三区有限公司 | 国产亚洲福利在线视频 | 人妻天天爽夜夜爽三区麻豆A片 | 男生插女生下体 | a视频在线观看 | xxxx18动漫 | 久久久无码精品亚洲日韩按摩 | 叔叔 电影完整版免费观看韩国 |