web项目中java类怎么访问WebRoot目录下的xml文件,路径怎么写?

把项目部署到Tomcat中,然后访问项目的一个页面,在页面中调用src下的一个java类,在这个java类中要访问(读取)这个web项目WebRoot下的一个xml文件。路径怎么写?谢谢!

第1个回答  2010-06-04
拷贝下面这个类,然后测试一下里面的path

/**
* 在如下环境下进行了测试
* <pre>
* Test Environment
* Windows Linux Unix
* Tomcat6.0.10
* Resin3.1.1
* Jboss4.0.0/5.0.0
* WebLogic9.1
* WebSphere6.1
* WasCE1.1
* Apusic4.0.3
* JFox3
* Jetty6.1.3
* </pre>
*
*/
public abstract class Path{

public static final String CLASS_PATH;
public static final String WEB_INF_PATH;
public static final String APP_PATH;
public static final String ROOT_PATH;

public static final String UserRegister;//玩家注册
public static final String sqlFilePath;//sql临时保存文件

static{
String currentPath=getPath(Path.class);
if(currentPath.indexOf(".jar!/")>-1||currentPath.indexOf("classes")>-1){
String classPath=currentPath.replaceAll("/./","/"); //weblogic

classPath=classPath.replaceAll("/lib/([^\'']+)!/","/classes/"); //jar
classPath=classPath.split("/classes/")[0]+"/classes/";
//if os is not windows system
if(classPath.indexOf(':')<0){
classPath='/'+classPath;
}
CLASS_PATH=classPath;
}else{
CLASS_PATH=Path.class.getClassLoader().getResource(".").getPath().substring(1);
}

WEB_INF_PATH=CLASS_PATH.substring(0,CLASS_PATH.substring(0,CLASS_PATH.lastIndexOf('/')).lastIndexOf('/')+1);

APP_PATH=WEB_INF_PATH.substring(0,WEB_INF_PATH.substring(0,WEB_INF_PATH.lastIndexOf('/')).lastIndexOf('/')+1);

ROOT_PATH=CLASS_PATH.substring(0,CLASS_PATH.indexOf('/')+1);

UserRegister=WEB_INF_PATH+"register.properties";
sqlFilePath =WEB_INF_PATH+"sqlFile.txt";
//UserRegister=WEB_INF_PATH.substring(0,WEB_INF_PATH.indexOf("WebRoot"))+"src/com/farmerwar/user/register.properties";
}

/**
* 获取参数cls的目录路径
* @param cls
* @return
*/
public static String getPath(Class<?> cls){
String t=getAbsoluteFile(cls);
return t.substring(0,t.lastIndexOf('/')+1).replaceAll("(file:/)|(file:)|(wsjar:)|(jar:)|(zip:)","");
// t=t.replaceAll("file:/", ""); //windows
// t=t.replaceAll("file:", ""); //linux,unix
// t=t.replaceAll("wsjar:",""); //websphere wsjar: has to at jar: before
// t=t.replaceAll("jar:",""); //tomcat,jboss,resin,wasce,apusic
// t=t.replaceAll("zip:",""); //weblogic
}

/**
* 获取参数cls的文件路径
* @param cls
* @return
*/
public static String getAbsoluteFile(Class<?> cls){
return cls.getResource(cls.getSimpleName() + ".class").toString().replaceAll("%20", " ");
}

public static void main(String args[]){

System.out.println(Path.WEB_INF_PATH);

}
}
第2个回答  2010-06-04
最坏的使用绝对路径本回答被提问者采纳
第3个回答  2010-06-04
如果你部署到tomcat里面的话,那就要看你web.xml怎么配的

Java web 工程在web-root目录下的jsp页面访问web-info下的xml文件...
那就先把xml解析出来,放到一个对象里,再用js取出来不就完了 这是有一个解析路径在src目录下的xml,希望对你有帮助!src目录下的文件会自动到你所说的:web-inf里面的classes目录下 \/ param args 不会一次读完,是一个一个的读取 \/ public static void main(String[] args) { \/\/ TODO Auto-g...

java io 访问位于WebRoot下的文件
先获取到相对路径:String s=Thread.currentThread().getContextClassLoader().getResource("\/").getPath();判断是不是为null如果是的就为 String s=Thread.currentThread().getContextClassLoader().getResource("").getPath();然后再s拼接上你的文件名就可以了 ...

web配置读取xml文件报找不到路径
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。举例:XMLS.class.getClass().getResourceAsStream("\/test\/test.xml");解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。备注:这个方法中后面的...

请问一个java web项目的根路径的问题,如果我的项目的web root为\/,
http:\/\/localhost:8080是tomcat默认的首页,你的项目需要发布,发布后在地址后面跟上项目名即可,如http:\/\/localhost:8080\/bbs即可访问默认首页index.jsp。myeclipse发布tomcat的方法应该会吧

Javaweb程序,src和webroot下的文件和包都是什么意思?
通俗一点描述 src是开发人员的编写的java文件放的位置,中间的文件夹名称也是由开发人员定义的,一般会分成数据层的,业务层的,控制层的,工具类的,基础信息类,配置文件等。webroot则是开发人员编写的JSP页面、html页面、js、还有java需要的jar包导入的地方、以及web配置项所在的地方,中文件夹的名称也是...

关于java中xml文件配置的路径问题
配置文件可以做路径映射的,通常\/static\/css\/是可以直接访问的,\/WEB-INF\/html\/是不能直接访问的,必须通过servlet或者其他类似controller访问。楼上2位没说全,"\/"在java代码里面才需要转义,页面上是不需要的;"\/" 代表的不是当前文件夹,代表的是根路径,".\/"才是当前文件夹。

java项目中有个xml文件,如何设置路径才可以在本机上的jar,局域网的别...
我刚不久前也遇到这类问题,你是要在Java类中读取xml文件,是吗?我开始写的在本地可以读,可发布了就读不到了,后来就改了如下的方式,供你参考吧:SuppressWarnings("unchecked")public Advice getAdvicefromXML(String type){ Advice advice = new Advice();SAXReader reader = new SAXReader();\/...

java web项目中action 操作文件默认路径写到哪里呀。我想写到web 项目...
<!-- extends指明了直接继承自哪个package,它的值是一个package的name --> <!-- namespace="\/"指明的就是根,是WebRoot的根,也是服务器的根 --> <!-- 如果namespace="\/user",则在页面访问时的路径就是就是根"\/"下的user\/下的,如:<form id="loginform" action="<%=path%>\/user...

java中如何获取WebContent下config文件下的xx.xml文件路径
通过ServletConfig可以获取。serconf.getServletContext().getRealPath("\/")+"config\/xx.xml"

web.xml文件位于web项目的目录结构中的什么中
在标准的Java Web应用程序中,WEB-INF目录包含所有Web应用程序的特定资源和配置文件,如Servlet类、JSP页面、数据库驱动程序和部署描述符web.xml等。其中,web.xml是一个XML文件,它提供了有关Web应用程序的配置信息,例如Servlet、过滤器等声明以及其他与Web应用程序相关的属性和参数,如上下文参数、错误...

相似回答