浏览 253 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-05
package cm.jdbc.dao;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import cm.beans.Manager;
import cm.util.Path;
public class ManagerDao {
private Properties p;
//初始化,加载属性文件
public ManagerDao() {
reload();
}
private void reload() {
try {
p = new Properties();
p.load(getClass().getResourceAsStream("/cfg/admin.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} //更新属性文件
public boolean updateManager(Manager man) {
p.setProperty("name", man.getName());
p.setProperty("pass", man.getPass());
try {
String path = Path.getClassesPath() + "cfg/admin.properties";
p.store(new FileOutputStream(path), null);
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
} //获取属性文件
public Manager getManager() {
reload();
Manager man = new Manager();
man.setName(p.getProperty("name"));
man.setPass(p.getProperty("pass"));
return man;
}
}web页面的登陆验证时出了点问题. 我的测试步骤: 1:登陆; 2:更新属性文件. 3:登陆; 问题出现在第三步上,前面均没有错误.属性文件正常修改,再次登陆的时候.新的属性无效.(属性文件确实改变了),必须重起服务器.. 有什么解决了办法没? 小弟感激不尽!
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |
|
时间:2008-04-05
确保ManagerDao 不是一个单实例的对象,每次都new一个新的ManagerDao供WEB层使用.
|
|
| 返回顶楼 | |
|
时间:2008-04-05
虽然上面的做法可以达到你的目标,但不是最好的做法.你可以做一个文件监听器,当admin.properties文件发送变动的时候自动通知ManagerDao来重新加载属性文件.推荐使用开源的Jpoll
|
|
| 返回顶楼 | |
|
时间:2008-04-05
谢谢.我用XML做配置试下.
|
|
| 返回顶楼 | |



