1. javaweb 修改properties文件中的属性值
String realPath1 = getServletContext().getRealPath("/");//这样你就得到了 你的CLASS目录 然后再拼装即可 试用于非WAR包
String realPath2 = getServletContext().getResource("/").getPath();//试用于所有
上面的都是获取到了CLASS目录 也就是你工程编译后的目录 然后再根据目录层级拼装即可
注意 web项目部署到服务器后 用你之前的方式是拿不到文件的 因为部署到服务器上面后的目录都变了 而且文件都放入CLASS目录下面了 所以你那错的
2. JavaWeb Tomcat 怎样实properties文件的实时加载
现在可以通过修改tomcat配置文件来让服务器自动加载,
修改tomcat服务器文件
tomcat安装目录--conf--server.xml,在tomcat的<host></host>标签里添加下面这行代码:
<Context
path=
"/myweb
"
docBase=
"E:\myeclipse9\myweb\WebRoot
"
reloadable=
"true
"/>
说明:
1>path:指定拜候该web应用的URL进口;
2>docBase:指定web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性【默认
指向tomcat的webapps】的相对于径;要是Web应用是个war文件,则指定war文件的路径。
3>reloadable:要是这个属性设置为true,Tomcat服务器在运行状况下会监视在WEB-INF/classess和WEB-
INF/lib目次下的class文件的改动,以及监视web应用的WEB-INF/web.xml文件的改动。要是检测到的class
文件或者web.xml文件被更新,服务器会自动加载Web应用。该属性的默认值为false.在web应用的开发和调
试阶段,把reloadable设为true,可以方便对web应用的调试。在web应用正式发布阶段,把reloadable设为
false,可以减低tomcat的运行负荷,提高Tomcat的运行性能。
3. web项目中如何用java读取properties文件
如下 E:\blsh\Tomcat 6.0\webapps\bucea_drms\WEB-INF\conf\drms_config.xml 项目发布的路径。 Properties p = new Properties();
FileInputStream in = new FileInputStream(configFileString); // 如果此处直接 使用 visitFile 会报错,找不到文件。
p.load(in);
p.getProperty("name");// 获取属性值
in.close();
FileOutputStream out = new FileOutputStream(configFileString);
p.setProperty("siteVisit",siteVisit);// 修改属性
p.setProperty("resVisit", resVisit);
p.store(out, " visit update!");// 存储修改后属性out.close();
4. java web项目中没有.properties文件怎么解决
自己添加一个啊,db.properties里面就是数据库连接配置字段。例如
#jdbc
jdbc.driverClassName=
jdbc.url=
jdbc.username=
jdbc.password=
,最后要确保放置路劲正确
5. java web工程中读取properties文件,路径一直不知道怎么写
InputStreamin=getClass().getResourceAsStream("/config.properties");
在静态方法中,由于不能使用getClass()方法,必须写出类的名字。区别不大。
MyClass.class.getResourceAsStream("/config.properties");
使用这个方法,路径前面可以加斜杠也可以不加。根据Class类getResourceAsStream()方法的JavaDoc:
Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream.
Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:
If the name begins with a '/' ('u002f'), then the absolute name of the resource is the portion of the name following the '/'.
Otherwise, the absolute name is of the following form:
modified_package_name/name
Where the modified_package_name is the package name of this object with '/' substituted for '.' ('u002e').
就是说,这个path假如以斜杠开头,则斜杠后面的部分是文件相对classpath的路径;假如不是,Java会把这个path看作是“包名/文件名”的结构,会尝试在这个类的包里面去找,而不是从classpath开始找;在这种情况下,除非你把properties文件放到MyClass.class所属的包里面,不然都会是null的。
MyClass.class.getClassLoader().getResourceAsStream("config.properties");
这是因为使用classloader进行读取,所输入的参数必须是一个相对classpath的绝对路径,在格式上,一个绝对路径是不能以'/'开头的。
注意这两个方法是同名的,但路径参数的格式截然不同。
现在几乎所有的web project都是maven project,Maven的默认设置是把
src/main/resources/
加入到classpath里面的。那么,最好的做法是把你的properties文件放进src/main/resources里面,然后用上面代码读取。用Class类的,一般要加斜杠;用ClassLoader类的,绝不能加斜杠!
假如是Eclipse里面,需要把这个src/main/resources加到classpath里面。具体操作是右击工程,选择“Configure buildpath”,根据Maven的要求,把src/main/java和src/main/resources都加进去,并且保证Exclude是none,Include是all,或者至少要包括你需要读取的文件。
6. java web启动时修改并重新加载properties文件
大兄弟,我这儿有一个,你参考一下,但是输出流问题,没有得到解决。因为src在项目布置到tomcat上会消失的,所以你看看能不能解决?
7. java web项目 web.xml中如何读取properties配置文件中的值
<util:properties id="config" location="classpath:test.properties" />
其中id为读取文件以后的bean id,可以通过这个id获取文件中对应属性的值,如config.test代表获取文件中test属性的值
8. java web怎样知道.properties配置的属性在哪里调用的
这需要你需要的时候,读取properties文件中你所需要的那一项。
例如:
public static String readValue(String filePath,String key) {
Properties props = new Properties();
try {
InputStream in = new BufferedInputStream (new FileInputStream(filePath));
props.load(in);
String value = props.getProperty (key);
System.out.println(key+value);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//filePath就是你的properties文件的路径,key就是你的那个属性的名字(也就是你的:WapDomain2
,SchoolId)。返回值就是你定义的对应的值,然后再进行使用。最好封装到一个工具类中
9. JavaWeb Tomcat 怎样实properties文件的实时加载
实时加载指的是什么?是指修改了后能重新加载?
properites的加载类是自己写的吗?
1、不考虑性能的话,每次都重新加载properties;
2、如果你有缓存(即加载了一次后不再加载),那么可以在缓存中取properties的配置值时,判断一下Properties文件有没有修改过(用java.io.File的方法 lastModify 判断),有修改的话清除缓存,再加载一次。
如果第三方框架的Properties文件,那就要看第三方框架支不支持实时加载。
10. 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("");
}
}