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目录的绝对路径吧!