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("");
}
}