1. 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();
2. 为什么就是获取不到javaweb工程下的配置文件所在路径
在Java web项目中经常会用属性文件作为配置文件,而其一般放在src的根目录下,读取文件时一般会有以下两种情况:
方式一、在servlet中读取:
// action配置文件路径
public static final String ACTIONPATH = "WEB-INF/classes/actions.properties";
// 属性文件
public static final Properties prop = new Properties();
// 获取servlet上下文的绝对路径,如:C:\Program Files\Apache\Tomcat 6.0\webapps\fee\
String path = getServletContext().getRealPath("\\");
// 把文件读入文件输入流,存入内存中
FileInputStream fis = new FileInputStream(new File(path + ACTIONPATH));
//加载文件流的属性
prop.load(fis);
方式二、在一般的类中读取:
// action配置文件路径
public static final String ACTIONPATH = "actions.properties";
// 属性文件
public static final Properties prop = new Properties();
// 获取当前类加载的根目录,如:/C:/Program Files/Apache/Tomcat 6.0/webapps/fee/WEB-INF/classes/
String path = UriFilter.class.getClassLoader().getResource("").toURI().getPath();
// 把文件读入文件输入流,存入内存中
FileInputStream fis = new FileInputStream(new File(path + ACTIONPATH));
//加载文件流的属性
prop.load(fis);
3. ASP.NET MVC 4中如何读取web.config中的配置
ASP.NET MVC 4中读取web.config中的配置方法如下:
web.config内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="c#" debug="true" />
</system.web>
<appSettings>
<add key="ConnectionInfo" value="server=(local);database=Northwind;Integrated Security=SSPI" />
</appSettings>
</configuration>
读取配置的方法:
void Page_Load(object sender, EventArgs e)
{
string connectionInfo = ConfigurationSettings.AppSettings["ConnectionInfo"];
using(sqlConnection connection = new SqlConnection(connectionInfo))
{
connection.Open();
// perform work with connection
}
}
4. myeclipse做webservice开发,如何读取配置文件中web.xml中设置的参数
想请问你的web.xml是否是你自已定义的xml文件
1.是的话,那很简单。DOM或是SAX解析随便找一种方法就好
2.不是,说明是你web的配置目录,你可以在使用节点加一个
<init-param>
<param-name>firstparam</param-name>
<param-value>firstparamvalue</param-value>
</init-param>
然后在方法里面获得
<%
String Str1;
Str1=config.getInitParameter("firstparam");
Out.println(Str1);
%>
不知道能否帮到你^^
--------------------------------------
方法很多。csdn帮你看了下
在tomcat 的C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\Catalina\localhost 目录下建立一个xml文件,文件名是你的应用的名字
类似于这样:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\sc114" path="/sc114" workDir="work\Catalina\localhost\sc114">
<Resource name="jdbc/UBSS_DS" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/UBSS_DS">
<parameter>
<name>maxWait </name>
<value>5000 </value>
</parameter>
<parameter>
<name>maxActive </name>
<value>4 </value>
</parameter>
<parameter>
<name>password </name>
<value>xunqin </value>
</parameter>
<parameter>
<name>url </name>
<value>jdbc:oracle:thin:@192.168.14.178:1521:orcl </value>
</parameter>
<parameter>
<name>driverClassName </name>
<value>oracle.jdbc.OracleDriver </value>
</parameter>
<parameter>
<name>maxIdle </name>
<value>2 </value>
</parameter>
<parameter>
<name>username </name>
<value>xunqin </value>
</parameter>
</ResourceParams>
</Context>
//web.xml 里面映射资源
<resource-ref>
<description>DB Connection </description>
<res-ref-name>jdbc/UBSS_DS </res-ref-name>
<res-type>javax.sql.DataSource </res-type>
<res-auth>Container </res-auth>
</resource-ref>
程序里面这样访问:
try{
DataSource ds = null;
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/UBSS_DS");
Connection conn = ds.getConnection();
//这里拿到了connection对象后,你想干啥就干啥吧
}catch(Exception e){
System.out.println("**********");
e.printStackTrace();
return null;
}
//tomcat不同的版本 配置可能稍有不同,有的配置在server.xml里面,自己去研究下,网上多的一大把
5. 用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不同
使用的是当前类的相对路径
6. 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";
}
}
7. web.xml中如何读取properties配置文件中的值
方法如下:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/config/log4j.properties</param-value>
</context-param>
8. web项目中如何读取配置文件config.xml
servlet初始化的时候会去读取web.xml,把这个文件的路径配置到web.xml里。或者你在web.xml里加载个初始化类,这个类去加载config.xml
9. java web项目 web.xml中如何读取properties配置文件中的值
<util:properties id="config" location="classpath:test.properties" />
其中id为读取文件以后的bean id,可以通过这个id获取文件中对应属性的值,如config.test代表获取文件中test属性的值