您的位置:首页 > 编程语言 > Java开发

java获取WEB-INF目录绝对路径

2016-08-06 01:38 537 查看
JSP WEB工程在不用servlet的情况下如何在普通的java类中获取WEB-INF的绝对路径呢?

如下图所示,我在WEB-INF目录下面放了一个文件server.xml,

我需要在普通的java类中获取server.xml的绝对路径,怎样才能获取到呢?



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

获取WEB-INF目录下面的server.xml文件绝对路径的代码如下:

[java] view
plain copy

 print?





/** 

     * 获取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界面测试的代码如下:

[html] view
plain copy

 print?





<%@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/ 

public static String getWebAppImagesTmpFolderPath() {
String imagesTmpFolderPath = Thread.currentThread().getContextClassLoader().getResource("").toString();

imagesTmpFolderPath = imagesTmpFolderPath.replace("file:/", "");
imagesTmpFolderPath = imagesTmpFolderPath.replace("WEB-INF/classes/", "");
imagesTmpFolderPath += "images/tmp";

return imagesTmpFolderPath;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web classpath