最近有一个项目需要当系统加载时必须加载某些必要的参数且只加载一次并且放入到全局使用域内。
我的数据放入在xml里边。
在网上找到很多种方法。
试过在servlet中设置启动为1但是不知道为什么无法获得application 一直在纠结此问题。希望大牛指教。我的项目是ssh2
后来因为做了一个在线计数器。也就是session监听器。。
后来想到可以利用session监听器实现。我的做法是在第一个访问的人进入网站时初始化。(暂时没找到更好的方法)
访问xml并且放入全局作用域中。。上代码吧。
首先是web.xml代码。
<listener>
<listener-class>bbs.init.sessionMonitor</listener-class>
</listener>
再是session监听器代码
package bbs.init;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.struts2.ServletActionContext;
import bbs.util.getHTTP;
/**
* session监听器
*
* @author mfkwfc
*
*/
public class sessionMonitor implements HttpSessionListener {
public static int count;
private boolean bl = true;
/**
* 创建事件
*/
@Override
public void sessionCreated(HttpSessionEvent arg0) {
if (bl) {
bl = false;
new loadConfig();
}
++count;
}
/**
* 销毁事件
*/
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
if (count != 0)
--count;
}
public static int getCount() {
return count;
}
public static void setCount(int count) {
sessionMonitor.count = count;
}
public boolean isBl() {
return bl;
}
public void setBl(boolean bl) {
this.bl = bl;
}
}
count 是用来统计在线人数的创建一个bean就可以看到在线人数了。
bl 是用来加载必要的一些类的