applicationlistener.java
来自「一个用struts tiles的在线影院web系统」· Java 代码 · 共 132 行
JAVA
132 行
package com.eline.vod.controller;
import java.net.MalformedURLException;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.PatternLayout;
import com.blue.web.common.util.AppKeys;
import com.blue.web.common.util.AppLogger;
import com.blue.web.common.util.AppSettings;
import com.blue.web.common.util.AppSettingsHandler;
import com.eline.vod.security.configuration.ConfigurationSettingsHandler;
import com.eline.vod.utils.SiteUrls2;
public class ApplicationListener implements ServletContextListener {
private ServletContext context = null;
public void contextDestroyed(ServletContextEvent event) {
System.out.println("********************** APPLICATION STOPED. **********************");
context = null;
}
public void contextInitialized(ServletContextEvent event) {
System.out.println("********************** APPLICATION STARTED. **********************");
// Get ServletContext object.
context = event.getServletContext();
try {
initAppSettings();
initLogger();
initAuthSettings();
initJaasSettings();
initSiteUrls();
} catch (Exception e) {
System.out.println("ERROR: Initialize system settings." + e.getMessage());
}
}
private void initAppSettings() throws Exception {
// ********************** 初始化系统配置信息 **********************
try {
String configURL = context.getResource("/WEB-INF/config.xml").toString();
AppSettingsHandler handler = new AppSettingsHandler();
handler.create(configURL);
} catch (MalformedURLException e) {
System.err.println("ApplicationListener.contextInitialized() : unable to find \"/WEB-INF/config.xml\"." + e.getMessage());
throw e;
} catch (Exception e) {
System.err.println("ApplicationListener.contextInitialized() : " + e.getMessage());
throw new Exception("Exception : ApplicationListener.initAppSettings()");
}
}
private void initAuthSettings() throws Exception {
try {
String configURL = context.getResource("/WEB-INF/config.xml").toString();
ConfigurationSettingsHandler handler = new ConfigurationSettingsHandler();
handler.create(configURL);
} catch (MalformedURLException e) {
System.err.println("ApplicationListener.contextInitialized() : unable to find \"/WEB-INF/config.xml\"." + e.getMessage());
throw e;
} catch (Exception e) {
System.err.println("ApplicationListener.contextInitialized() : " + e.getMessage());
throw new Exception("Exception : ApplicationListener.initAuthSettings()");
}
}
private void initJaasSettings() throws Exception {
// ********************** 初始化JAAS系统属性 **********************
try {
String authSecurityLoginFile = context.getRealPath("/WEB-INF/jaas-login.conf");
System.out.println("authSecurityLoginFile=" + authSecurityLoginFile);
System.setProperty("java.security.auth.login.config", authSecurityLoginFile);
if (System.getProperty("java.security.auth.db.config") == null) {
String authDbConfigFile = context.getRealPath("/WEB-INF/jaas-db.conf");
System.out.println("authDbConfigFile=" + authDbConfigFile);
System.setProperty("java.security.auth.db.config", authDbConfigFile);
}
} catch (Exception e) {
System.err.println("ApplicationListener.contextInitialized() : unable to set jaas login configuration file. " + e.getMessage());
throw new Exception("Exception : ApplicationListener.initJaasSettings()");
}
}
private void initLogger() throws Exception {
// ********************** 设置系统日志文件信息 **********************
try {
// Set log level for output.
String logLevel = AppSettings.getInstance().getProperty(AppKeys.LOG_LEVEL);
if (logLevel != null)
AppLogger.setLevel(logLevel);
System.out.println("logLevel\t= " + logLevel);
// Add the file appender to AppLogger.
String logFilePath = AppSettings.getInstance().getProperty(AppKeys.LOG_PATH);
System.out.println("logFilePath\t= " + logFilePath);
DailyRollingFileAppender fileAppender = new DailyRollingFileAppender(
new PatternLayout("=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n"),
logFilePath + "\\" + AppSettings.getInstance().getProperty(AppKeys.APPID) + ".log", ".yyyy-MM-dd");
AppLogger.getInstance().addAppender(fileAppender);
// Add the console appender to AppLogger.
AppLogger.getInstance().addAppender(new ConsoleAppender(
new PatternLayout("[%d{MM-dd HH:mm:ss}] %-5p : %10c > %x - %m%n"),
"System.out"));
AppLogger.info("AppLogger started.");
} catch (Exception e) {
System.err.println("MainServlet.init() : init application logger failure." + e.getMessage());
throw new Exception("Exception : ApplicationListener.initLogger()");
}
}
private void initSiteUrls() throws Exception {
String configURL = context.getResource("/WEB-INF/site-urls.xml").toString();
SiteUrls2 settings = SiteUrls2.getInstance();
settings.init(configURL);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?