1. 程式人生 > >java獲取WEB-INF目錄絕對路徑

java獲取WEB-INF目錄絕對路徑

JSP WEB工程在不用servlet的情況下如何在普通的java類中獲取WEB-INF的絕對路徑呢?

如下圖所示,我在WEB-INF目錄下面放了一個檔案server.xml,

我需要在普通的java類中獲取server.xml的絕對路徑,怎樣才能獲取到呢?


---------------------------------------------------------------------------------------------------------------------------------------------

獲取WEB-INF目錄下面的server.xml檔案絕對路徑的程式碼如下:

/**
	 * 獲取WEB-INF目錄下面server.xml檔案的路徑
	 * @return
	 */
	public static String getXmlPath()
	{
		//file:/D:/JavaWeb/.metadata/.me_tcat/webapps/TestBeanUtils/WEB-INF/classes/ 
		String path=Thread.currentThread().getContextClassLoader().getResource("").toString();
		path=path.replace('/', '\\'); // 將/換成\
		path=path.replace("file:", ""); //去掉file:
		path=path.replace("classes\\", ""); //去掉class\
		path=path.substring(1); //去掉第一個\,如 \D:\JavaWeb...
		path+="server.xml";
		//System.out.println(path);
		return path;
	}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我在JSP介面測試的程式碼如下:

<%@page import="tools.ReadXML"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
        <title></title>
  </head>
  
  <body>
  		<center>
			server.xml所在路徑:<br>
			<%=ReadXML.getXmlPath()%>
		</center>
  </body>
</html>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

效果截圖如下:



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

最後廢話幾句:

           我們都知道在JSP WEB工程中有幾個固定的目錄,如1.WEB-INF目錄,2.classes目錄....

而classes目錄就在WEB-INF目錄下面。在執行JSP網站時,所有的java類都被放在了classes目錄下面,

我們通過以下語句獲取class目錄所在的目錄:

Thread.currentThread().getContextClassLoader().getResource("").toString();

一般獲取到的結果形式為:

file:/D:/JavaWeb/.metadata/.me_tcat/webapps/TestBeanUtils/WEB-INF/classes/ 

騷年,根據以上這個字串,不難提取出WEB-INF目錄的絕對路徑吧!

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

您的十分滿意是我追求的宗旨。

您的一點建議是我後續的動力。