Java初始化servlet数据

来源:互联网 发布:淘宝最赚钱的行业 编辑:程序博客网 时间:2024/05/20 11:26

在web项目启动的时候可以进行必要数据的初始化,如log4j,config.properties等相关信息的初始化,通常在灵活读取配置文件的时候比较管用

import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.apache.log4j.PropertyConfigurator;public class InitServlet extends HttpServlet {/**   * define a field serialVersionUID which type is long */private static final long serialVersionUID = -7718302829857998640L;public static final String FILE_SEPARATOR = System.getProperties().getProperty("file.separator"); private static String contextPath;private static String hibernatePath;private static String serverConfig;private static String classPath;@Overridepublic void init(ServletConfig config) throws ServletException {super.init(config);String prefix = config.getServletContext().getRealPath("/");InitServlet.contextPath = prefix;if(FILE_SEPARATOR.equals("\\")) {// 获取内容服务器配置文件的路径serverConfig = prefix + "\\WEB-INF\\config.properties";} else if(FILE_SEPARATOR.equals("/")) {serverConfig = prefix + "/WEB-INF/config.properties";}// Log4JString log4jFile = config.getInitParameter("log4j");String log4jConfigPath = prefix + log4jFile;PropertyConfigurator.configure(log4jConfigPath);// Hibernate PathhibernatePath = prefix + config.getInitParameter("hibernate");classPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();}@Overridepublic void destroy() {}public static final String getContextPath() {return InitServlet.contextPath;}public static final String getHibernatePath() {return InitServlet.hibernatePath;}public static final String getServerConfig() {return serverConfig;}public static final String getClassPath() {return classPath;}}


在web.xml中需要加入下面的信息,否则web项目无法识别初始化信息

<servlet><servlet-name>initServlet</servlet-name><servlet-class>com.xxx.xxx.init.InitServlet</servlet-class><init-param><param-name>log4j</param-name><param-value>WEB-INF/log4j.properties</param-value></init-param><init-param><param-name>hibernate</param-name><param-value>WEB-INF/hibernate.cfg.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>


 

原创粉丝点击