❶ java web工程,读取配置文件路径问题
FileReaderfr=newFileReader(JdbcTools.class.getClassLoader.getResourceAsStream("conf/WaterConfig.properties"));
❷ 用java 如何读取配置文件(如:资源文件)中配
java读取配置文件的几种方法如下:
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。
方式二:采用ResourceBundle类读取配置信息,
优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。
方式三:采用ClassLoader方式进行读取配置信息
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
缺点:只能加载类classes下面的资源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 与classloader不同
使用的是当前类的相对路径
❸ JAVA maven创建web项目,把Spring框架配置文件放在src/main/resources中读取不到配置文件
classpath:是从类路径里查找配置文件,也就是/WEB-INF/classes目录下找SpringMVC-servlet.xml。
你写了classpath了,不会从web-info下找,而是去web-inf/classes下面找,所以找不到。
❹ 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();
❺ java web应用程序的properties文件路径
这个问题就得看你的配置文件放在哪里啦,如果放在了项目的Classes目录(或子目录)下,你可以用**.Class.getResource('相对路径')来获取配置文件路径.如果是其他目录,那你只能在项目启动时通过ServletContext获取项目根目录+配置文件的目录来确定路径.并把路径放到类文件可以引用的地方啦.
以下是我在做项目时写的一个用于获取路径的类,写的可能不太好.但还是希望能对你有所帮助:
package com.example.web;
import java.io.File;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
/**
* 路径获取类
* */
public class WebPath {
/**
* 获取项目根目录的绝对路径
*
* @return 如:F:\TongJianpeng\J2EEUtil
* */
public static String getAbsolutePathWithProject() {
return System.getProperty("user.dir");
}
/**
* 获取项目所在盘符
* */
public static String getDriverPathWithProject() {
return new File("/").getAbsolutePath();
}
/**
* 获取项目根目录的绝对路径
*
* @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request) {
return request.getSession().getServletContext().getRealPath("/");
}
/**
* 获取项目根目录下的指定目录的绝对路径
*
* @param 项目根目下的指定目录
* .例如:/login/
* @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request, String path) {
return request.getSession().getServletContext().getRealPath(path);
}
/**
* 获取项目根目录的绝对路径
*
* @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(ServletContext context) {
return context.getRealPath("/");
}
/**
* 获取项目根目录下的指定目录的绝对路径
*
* @param 项目根目下的指定目录
* .例如:/login/
* @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(ServletContext context,
String path) {
return context.getRealPath(path);
}
/**
* 获取项目classpath目录的绝对路径
*
* @return classes目录的绝对路径<br/>
* file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
* */
public static URL getAbsolutePathWithClass() {
return WebPath.class.getResource("/");
}
/**
* 获取项目classPath目录下的指定目录的绝对路径
*
* @param path
* classes目录下的指定目录.比如:/com/
* @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
* */
public static URL getAbsolutePathWithClass(String path) {
return WebPath.class.getResource(path);
}
/**
* 获取指定类文件的所在目录的绝对路径
*
* @param clazz
* 类
* @return 类文件的绝对路径.例如:<br/> 包com.Aries.Util.Web下的Main.java类.<br/>
* 路径为:file:/
* F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
* */
public static URL getAbsolutePathWithClass(Class clazz) {
return clazz.getResource("");
}
}
❻ 我在web-inf下有一个xml配置文件 在一个java类中怎么获得这个配置文件的路径大神指教
System.out.println(request.getContextPath()+"web-inf/web.xml");
❼ java读取properties配置文件路径问题
说说我的项目中的情况吧:
配置文件“weblogic11g.properties”保存在WEB-INFO目录下,和web.xml在同一个目录下。
一个JavaBean专门用于读取配置文件的内容:
public class PropertiesIO {
private String fileName = null;
public PropertiesIO(String fileName){
this.fileName = getClass().getClassLoader().getResource("/").getPath() + "..\\" + fileName;
}
public String getValue(String key){
try{
InputStream in = new FileInputStream(fileName);
Properties prop = new Properties();
prop.load(in);
in.close();
return prop.getProperty(key);
}
catch(Exception err){
err.printStackTrace();
return null;
}
}
}
重点说明:getClass().getClassLoader().getResource("/")会得到当前项目下的“WEB-INF\classes”目录,即JavaBean的*.class文件的根目录,
getClass().getClassLoader().getResource("/").getPath() + "..\\" + fileName
就会得到当前项目下的“WEB-INF\weblogic11g.properties”文件。
getValue()是根据键值得到相应配置项的内容,这样就简单了。
❽ java 怎么读取web jar中的某个配置文件
项目迁移的过程中发现以前的代码维护性实在是差。
我把问题简化为以下这些简单的代码:
项目M
引用了项目
A.jar,这个A在lib目录里面
在A里面放置了一个配置文件test.properties,
就放在jar的根目录下。
A.jar
|___test.properties
在M中有一段代码回去读取这个A.jar里的配置文件,简单一点就用下面这句话来调用。
Java
code
public
class
ConfigUtil
{
public
static
String
getInstance()
throws
Exception{
String
path
=
ConfigUtil.class.getResource("/").toString();
path
=
path.substring(0,
path.length()-8);//
System.out.println(path);//这里打印的结果显示可以拿到当前类的绝对路径
InputStream
f
=
new
FileInputStream("jar:"+path+"lib!/A.jar/"+"test.properties");
return
"xxx";
}
}
❾ java web项目中,文件位置
1.JSP 所有的网页代码
2.js所有的javaScript代码
3.bo一般是java的类文件
4.一般是处理数据库方法的接口
5.impl是上述接口的实现
6.service 是 处理数据库逻辑的服务
7.action 是处理业务逻辑的
8.xml是配置文件
9.jsp得到请求到 structs的配置文件里找相应的配置方法,根据配置方法到action里找到处理的方法,然后执行,返回一个结果,再到刚才的配置文件里查找返回处理结果,然后返回jsp页面上
10.这其中,action里的处理的时候,可能会跟数据库发生交互,就会调用service里的方法,service里的方法又会通过接口调用impl里的方法,然后bo里是与数据库一一对应的映射文件,对应着数据库里的每张表。
❿ 普通java类读取webroot下的配置文件
可以使用绝对路径写:/项目名/test.xml
或者看看这么写:../../../test.xml行不行