web.xml
该文件非常简洁。
一个过滤器
<filter>
<filter-name>clickstream-jforum</filter-name>
<filter-class>net.jforum.util.legacy.clickstream.ClickstreamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>clickstream-jforum</filter-name>
<url-pattern>*.page</url-pattern>
</filter-mapping>
因为在JForum应用中,所有的URL都匹配*.page,所以该过滤器对任何HTTP请求都有效。该过滤器作用:设置属性request.setAttribute(FILTER_APPLIED, Boolean.TRUE)标识该请求已被过滤,request.setAttribute(ConfigKeys.IS_BOT, Boolean.valueOf(bot != null))标识该请求是否来自机器人(即网络爬虫)。
一个实现了接口HttpSessionListener的会话监听器
<listener>
<listener-class>net.jforum.ForumSessionListener</listener-class>
</listener>
当Tomcat销毁一个会话时,JForum需要Tomcat做如下事情(即钩子方法):将用户会话信息保存到数据库中。
一个servlet
<servlet>
<servlet-name>jforum</servlet-name>
<servlet-class>net.jforum.JForum</servlet-class>
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
...
<servlet-mapping>
<servlet-name>jforum</servlet-name>
<url-pattern>*.page</url-pattern>
</servlet-mapping>
该servlet匹配所有URL。net.jforum.JForum主要作用:
- 初始化log4j.xml
- 加载SystemGlobals.properties
- 初始化缓存引擎
- 配置Freemarker模板引擎
- 加载urlPattern.properties
- 加载I18N配置文件
- 加载关于SQL的配置文件
- 加载关于定时任务的配置文件(关于quartz的)
- 等等