发新话题

J2EE学习笔记——初试SSH之程序架构

前言:
初学SSH,有不妥之处还请各位大侠见谅。

刚接触SSH,最近准备在尝试着开发一套小型办公系统,设计程序之初定义了一套系统的全局配置文件(注:配置文件主要是一些公共的配置信息,比如程序名称,是否启用验证码等),个人想法是要在系统中任何地方都能很容易的引用到这全局配置文件的信息。

以前用Servlet做开发的时候我可以在init()方法中对配置信息进行一系列的初始化操作,但现在因为使用了SSH所以不能这么做了,所以我只能重写ActionServlet以达到对配置信息的初始化工作。


/**
* 本类重写了Struts的ActionServlet
* 用于加载程序的全局配置信息
* 
* @author 黄磊
*
*/
public class ActionServlet extends org.apache.struts.action.ActionServlet {

private static final long serialVersionUID = 6768653293592464041L;

private static final Logger logger = Logger.getLogger(ActionServlet.class);

/**
* 系统全局配置信息
*/
protected static Config config;

@Override
public void init() throws ServletException {
logger.info("开始初始化...");
super.init();
if (config == null) {
String appPath = getServletContext().getRealPath("/");
ConfigLoader.startSystemglobals(appPath);
config = ConfigLoader.getConfig();
}
logger.info("初始化成功...");
}

@Override
protected void process(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

// 保存全局配置信息到request中
request.setAttribute("config", config); 
super.process(request, response);
}


}




我重写了ActionServlet的init()方法用于加载系统配置文件的信息(ConfigLoader是我自己写的加载配置的类),然后再重写process()方法把配置信息保存到request中,这样就能很方便的在页面通过EL取出配置信息了

重写之后我们还需要做的是让Struts使用这个重写的类,替换WEB.XML中的原Struts类为我们自己的类即可



编辑 回复 快速回复 TOP
private static final long serialVersionUID = 6768653293592464041L;
这句有什么作用??
这个是不是用到了 LOG4J啊,我很想学习下LOG4J怎么配置,什么时候用,什么东东写到日志文件里,什么东东输出到控制台上,希望楼主有有关的资料发一下,谢谢~
编辑 回复 快速回复 TOP
private static final long serialVersionUID = 6768653293592464041L;
这句跟log4j没关系的,这个跟类的版本有关系,不加这个对程序没有任何影响,只是看着报出的警告不舒服而已,具体关于介绍可以看看这里:
http://news.newhua.com/news1/program_language/2008/418/0841884152250KE3J1E982A221GC2H420FI4D7H7JJ1H0KK4H0FB9G1.html

关于log4j方面的东西我会相继的转载资料过来。
编辑 回复 快速回复 TOP
发新话题