
怎么才算好的源码分析呢?当然我这个肯定不算。我想大概分为几个层面吧,写写注释那算
最基本的了,写写要点思路和难点,算是还不错拉,再难的就是跳出源码举一反三,形成自
己的一套思路吧。好好努力吧。?
? 这次针对的是 jforum2.1.8,大概 jforum 团队已经没心情理这个版本了,都冲着 jforum3
去了。选择这个版本,主要是因为 jforum 在 java 论坛类应用中算是佼佼者了,很多人都拿
这个来做二次开发,而 jforum3 使用的是另外一套架构了,而且还没完全 release,所以斟
酌一下,还是选择这个经典的版本。?
?? 关于 jforum 的介绍网上已经很多了,这里也简单抄录一段:JForum 是一个功能强大 ,
易于管理的论坛。它的设计完全遵从 MVC 设计模式,能够在任何 Servlet 容器与 EJB 服务器
上运行。而且可以轻松的定制与扩展 JForum 论坛。?
?? 上面这段简述还是中肯的。另外,jforum 是模仿 phpbb 写的,使用的是 classic-blue 风
格,但不能自己选择风格,要的话只能自己修改了。?
??
?? 再说几句,说 jforum 比较优秀是因为 java 开源的论坛系列精品少,而且 jforum 的 bug
也真的不少,不信试试就知道了。不过作为一个成型的组件,功能强大并且适合二次开发,
还是应该列入考虑范围的。?
不管怎样,jforum 是个不错的学习范本,至少让你觉得写个山寨框架不是什么难事,而事实
也的确是这样的。重要的一点是,不要轻易拿出来害人就是了:)这里先列举出可能一些分析
点:?
web.xml?
初始化流程?
处理请求流程(mvc)?
文件监控?
缓存实现?
数据库访问实现?
权限控制?
??? 首先了解一个 web 应用,首要的就是知道处理流程。首先来看看入口 web.xml,里边的
内容还是挺清晰的,可以看到里边有个监听器 ForumSessionListener,*.page 的过滤器
ClickstreamFilter,还有 2 个*.page 的处理器,其中 InstallServlet 是安装相关的,JForum
则是前端处理器。基本上整个流程就是 client request -> ForumSessionListener ->
ClickstreamFilter -> JForum -> server response.?
??? ForumSessionListener 实现了 HttpSessionListener 接口,但是只是对 session destory
做了处理,在这个过程中,保存 session 的历史记录到 DB,并清除用户信息和相关的 security
信息。?
??? ClickstreamFilter 实现了 Filter 接口,主要的任务就交给 BotChecker 了,是用来检
测 client 是不是一个 robot 来的。?
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
评论3
最新资源