MainServlet中,当初始化Theme结束之后,就开始初始化站点设置了,if (_log.isDebugEnabled()) { _log.debug("Initialize web settings"); } try { initWebSettings(); } ..
它会去调用initWebSettings()方法:
protected void initWebSettings() throws Exception { ServletContext servletContext = getServletContext(); String xml = HttpUtil.URLtoString( servletContext.getResource("/WEB-INF/web.xml")); checkWebSettings(xml); }其本质就是去读取web.xml中的一些配置信息,我们跟进到checkWebSettings()方法中,发现它主要做了和session 相关的设置:
首先,它去获取服务器中配置的session超时值(分钟):
int timeout = PropsValues.SESSION_TIMEOUT;这个值最终可以从portal.properties中获取:
# # Specify the number of minutes before a session expires. This value is # always overridden by the value set in web.xml. # session.timeout=30然后,它去获取web.xml中<session-config>元素配置的session超时值(分钟),并且,如果这里设置了值,则覆盖portal.properties中的设定:
Element sessionConfig = root.element("session-config"); if (sessionConfig != null) { String sessionTimeout = sessionConfig.elementText( "session-timeout"); timeout = GetterUtil.getInteger(sessionTimeout, timeout); }然后,它调用的代码是:
I18nServlet.setLanguageIds(root);