A. java 怎麼獲取web根目錄
以工程名為TEST為例: x0dx0ax0dx0a(1)得到包含工程名的當前頁面全路徑:request.getRequestURI() x0dx0a結果:/TEST/test.jsp x0dx0a(2)得到工程名:request.getContextPath() x0dx0a結果:/TEST x0dx0a(3)得到當前頁面所在目錄下全名稱:request.getServletPath() x0dx0a結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp x0dx0a(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp") x0dx0a結果:D:/resin/webapps/TEST/test.jsp x0dx0a(5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();x0dx0a結果:D:/resin/webapps/TEST x0dx0ax0dx0a2.在類中取得路徑: x0dx0ax0dx0a(1)類的絕對路徑:String u=Class.class.getClass().getResource("/").getPath() x0dx0a結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ x0dx0a(2)得到工程的路徑:System.getProperty("user.dir") x0dx0a結果:D:/TEST x0dx0ax0dx0a3.在Servlet中取得路徑: x0dx0ax0dx0a(1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數可具體到包名。 x0dx0a結果:E:/Tomcat/webapps/TEST x0dx0a(2)得到IE地址欄地址:request.getRequestURL() x0dx0a結果:http://localhost:8080/TEST/test x0dx0a(3)得到相對地址:request.getRequestURI() x0dx0a結果:/TEST/test
B. 在java中怎麼訪問web-inf 目錄下的jsp頁面。
外部訪問來說,web-inf下的文件都是不可見的(即不能通過url獲得web-info下的任何文件),所以,直接訪問jsp是不可能的。可以使用view層框架(如struts)來提供jsp服務,將jsp文件放到web-info下避免客戶直接訪問到頁面,同時使用struts來進行jsp文件提取,並將編譯好的結果發送到客戶端。
WEB-INF是Java的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄。如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。
WEB-INF 目錄的作用:
/WEB-INF/web.xml
Web應用程序配置文件,描述了 servlet 和其他的應用組件配置及命名規則。
/WEB-INF/classes/
包含了站點所有用的 class 文件,包括 servlet class 和非servlet class,他們不能包含在 .jar文件中(是該目錄不能包含在.jar文件中)。
/WEB-INF/lib/
存放web應用需要的各種JAR文件,放置僅在這個應用中要求使用的jar文件,如資料庫驅動jar文件。
/WEB-INF/src/
源碼目錄,按照包名結構放置各個java文件。
/WEB-INF/database.properties
資料庫配置文件
/WEB-INF/tags/
存放了自定義標簽文件,該目錄並不一定為 tags,可以根據自己的喜好和習慣為自己的標簽文件庫命名,當使用自定義的標簽文件庫名稱時,在使用標簽文件時就必須聲明正確的標簽文件庫路徑。
例如:當自定義標簽文件庫名稱為 simpleTags 時,在使用 simpleTags 目錄下的標簽文件時,就必須在 jsp 文件頭聲明為:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目錄沒有特定的聲明,同樣,可以根據自己的喜好與習慣來命名。此目錄主要存放的是 jsp 1.2 以下版本的文件,為區分 jsp 2.0 文件,通常使用 jsp 命名,當然你也可以命名為 jspOldEdition 。
/WEB-INF/jsp2/
與 jsp 文件目錄相比,該目錄下主要存放 Jsp 2.0 以下版本的文件,當然,它也是可以任意命名的,同樣為區別 Jsp 1.2以下版本的文件目錄,通常才命名為 jsp2。
META-INF
相當於一個信息包,目錄中的文件和目錄獲得Java 2平台的認可與解釋,用來配置應用程序、擴展程序、類載入器和服務
manifest.mf文件,在用jar打包時自動生成。
C. java web應用中把 WEB-INF\classes\db.properties 在static中如何讀取裡面的數據
pp=new Properties();
fis = new FileInputStream("C:\\Program Files (x86)\\Apache Software Foundation\\Tomcat 7.0\\webapps\\test\\WEB-INF\\classes\\db.properties");
pp.load(fis);
D. java文件中怎樣獲取webcontent/web-inf/conf目錄下的xml配置文
訪問不到的,裡面是設有保護的
E. 普通java類文件如何訪問WEB-INF目錄下的文件,不是Servlet、JSP類文件
你就用System.out.print();在控制台輸出一下內容咯!例如一下就是訪問配置文件並輸出相應變數的方法
public void capturePropertys(String driver,String url,String user,String password){
Properties prop = new Properties();
InputStream is = a_connection_Propertys.class.getResourceAsStream("db.properties");
//getClass().getResourceAsStream("mysql.properties");
try{
prop.load(is);
}catch(IOException e)
{
System.out.println("[Dbconnection]打開 文件 出錯");
}
this.jdbc = prop.getProperty(driver);
this.url = prop.getProperty(url);
this.user = prop.getProperty(user);
this.password = prop.getProperty(password);
System.out.println("jdbc="+this.jdbc);
System.out.println("url="+this.url);
System.out.println("user="+this.user);
System.out.println("password="+this.password);
}
F. jsp 在java程序中獲取 web-inf目錄
你需要一個servlet或者action,servlet舉例:
建一個servlet,在doPost()中通過,
request.getSession().getServletContext().getRealPath("/WEB-INF");
G. java web工程,讀取配置文件路徑問題
讀取配置文件 , xxx.properties放在webroot/WEB-INF/classes/目錄下
首先將配置文件轉換成InputStream,有兩種方式,原理一樣,都是通過類載入器得到資源:
(1)InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("xx.properties");
(2) InputStream inputStream =
this.getClass() .getClassLoader().getResourceAsStream( "xx.properties" );
調用對象的getClass()方法是獲得對象當前的類類型,這部分數據存在方法區中,
而後在類類型上調用 getClassLoader()方法是得到當前類型的類載入器,我們知道在Java中所有的類都是通過載入器載入到虛擬機中的,而且類載入器之間存在父 子關系,就是子知道父,父不知道子,這樣不同的子載入的類型之間是無法訪問的(雖然它們都被放在方法區中),所以在這里通過當前類的載入器來載入資源也就 是保證是和類類型同一個載入器載入的。
最後調用了類載入器的getResourceAsStream()方法來載入資源。
(3) 然後載入配置文件,讀取屬性值
Properties prop = new Properties();
prop.load(input);
String value = prop.getProperty("PropertyName");
input.close();
H. java中怎麼獲取web-inf的路徑
request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath()+"/"+"WEB-INF"