好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > 在JSP中處理虛擬路徑

在JSP中處理虛擬路徑

熱門(mén)標(biāo)簽:商丘百應(yīng)電話(huà)機(jī)器人有沒(méi)有效果 電話(huà)機(jī)器人的特色和創(chuàng)新 黃石智能營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人效果 怎樣把地圖標(biāo)注出來(lái) 騰訊地圖標(biāo)注商戶(hù)改名注冊(cè)入駐 開(kāi)封便宜外呼系統(tǒng)報(bào)價(jià) 漯河辦理400電話(huà) 地圖標(biāo)注人員兼職 淮南騰訊地圖標(biāo)注

摘要
在為服務(wù)器端組件編程時(shí),你很可能要從相對(duì)于web根的路徑來(lái)取得某個(gè)文件的真實(shí)路徑,但此文件實(shí)際上在站點(diǎn)的一個(gè)虛擬路徑上。
什么是虛擬路徑?
在一個(gè)web服務(wù)器上,虛擬路徑將物理上分離的各文件組合在一起,放在同一個(gè)站點(diǎn)路徑上,在應(yīng)用服務(wù)器上,每個(gè)應(yīng)用定位于其自己的虛擬路徑上,實(shí)際上相互之間有著完美地分離。
getRealPath()方法
JSP servlet API提供了getRealPath(path)方法,返回給定虛擬路徑的真實(shí)路徑,如果轉(zhuǎn)換錯(cuò)誤,則返回null。
getRealPath語(yǔ)法定義:
public java.lang.String getRealPath(java.lang.String path)
返回一個(gè)字符串,包含一個(gè)給定虛擬路徑的真實(shí)路徑。例如,虛擬路徑 "/index.html"
不管在服務(wù)器文件系統(tǒng)上具有怎樣的真實(shí)路徑,使用"/index.html"總可以找到它。返回的真實(shí)路徑使用了相近于servlet容器(srvlet container)所在計(jì)算機(jī)或操作系統(tǒng)的格式,包含了適當(dāng)?shù)穆窂椒指舴H绻鹲ervlet容器無(wú)法轉(zhuǎn)換則這個(gè)方法將返回null。
參數(shù):
  path -一個(gè)描述了虛擬路徑的字符串
返回值:
  描述真實(shí)路徑的字符串或者null
遺憾的是,getRealPath常常返回不同的東西,這取決于服務(wù)器或jsp文件調(diào)用此方法的路徑位置。
一個(gè)example站點(diǎn)
假設(shè)我們的站點(diǎn)組織如下:
根路徑包含了我們的站點(diǎn)的根: http://address/
a_virtual目錄包含了我們站點(diǎn)提供的虛擬路徑的文件,例如:
http://addess/virtual_dir/
我們查找file1.txt和file2.txt的真實(shí)路徑,它們一個(gè)在站點(diǎn)根路徑下,一個(gè)在虛擬路徑下。
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,因?yàn)檫@個(gè)文件不存在。
但getRealPath()并不總是返回同樣的結(jié)果,這還取決與你使用的js引擎。
JSP引擎
Tomcat 3.1
Tomcat返回的結(jié)果具有應(yīng)用的獨(dú)立性(application dependant):
它取決與調(diào)用getRealPath方法的那個(gè)jsp文件所在的位置。
實(shí)際上,當(dāng)page1.jsp (位于站點(diǎn)根處)對(duì)file1.txt和file2.txt調(diào)用txtgetRealPath(), 它返回正確的結(jié)果。(這是在tomcat 3.1, 3.0版則對(duì)file2.txt返回錯(cuò)誤的路徑)
但是當(dāng)page2.jsp(位于另一個(gè)應(yīng)用,在一個(gè)虛擬路徑中)調(diào)用getRealPath,它返回了錯(cuò)誤的路徑:它連接了該jsp文件所在的路徑和請(qǐng)求的虛擬路徑。
例如,從page2.jsp中調(diào)用getRealPath(/file1.txt)將返回 C:\site\a_virtual\file1.txt。
這一行為其實(shí)是使不同的應(yīng)用相互獨(dú)立的典型的處理方法。
JRun 2.3.3和INPRISE APPLICATION SERVER 4.0 (IAS)
JRun和IAS對(duì)file1.txt和file2.txt都返回正確的結(jié)果。
然而所有這些引擎有一個(gè)共同的行為: 當(dāng)getRealPath處理不存在的文件時(shí),它們都不返回null!
解決之道
既然getRealPath總是返回一個(gè)路徑,我們?cè)趺粗浪欠裾_呢?最簡(jiǎn)單的方法是檢查這個(gè)返回的路徑是否存在。
這就是isVirtual方法要做的:在對(duì)一個(gè)給定的文件調(diào)用getRealPath以后,它使用了java.io來(lái)
存取這個(gè)文件,于是就可以知道它是否存在。
/**
* 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對(duì)URL鏈接中的中文亂碼處理方法總結(jié)
  • jsp中URL傳遞中文參數(shù)的處理方法
  • 在jsp頁(yè)面如何獲得url參數(shù)
  • JSP中js傳遞和解析URL參數(shù)以及中文轉(zhuǎn)碼和解碼問(wèn)題
  • javascript通過(guò)url向jsp頁(yè)面?zhèn)鬟f中文參數(shù)導(dǎo)致亂碼解決方案
  • jsp文件絕對(duì)路徑的設(shè)置方法
  • JSP的相對(duì)路徑如何計(jì)算深入研究
  • jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
  • jsp獲取url路徑的方法分析

標(biāo)簽:拉薩 鄭州 馬鞍山 武威 大興安嶺 岳陽(yáng) 紅河 亳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在JSP中處理虛擬路徑》,本文關(guān)鍵詞  在,JSP,中,處理,虛擬,路徑,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在JSP中處理虛擬路徑》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于在JSP中處理虛擬路徑的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章