
JForum2.1.8
文章平均质量分 52
jinjiankang1980
这个作者很懒,什么都没留下…
展开
-
关于JForum不错的网址
http://canbeatle.iteye.com/blog/128626http://hi.baidu.com/zhangtianshun/blog/item/6d318101ca37cb0c1d958397.htmlhttp://blog.youkuaiyun.com/JForum/archive/2007/10/31/1859690.aspxhttp://dev.firnow.com/co...原创 2011-01-12 16:44:07 · 312 阅读 · 0 评论 -
JForum源代码研究—ThreadLocal,用户特有的变量
JForumExecutionContext是一个很有意思的类!顾名思义,这是一个执行期或运行期上下文类。嗨,等于没说!先看其类变量:private static ThreadLocal userData = new ThreadLocal();private static Logger logger = Logger.getLogger(JForumExecutionContext.cl...原创 2011-01-11 11:18:05 · 126 阅读 · 0 评论 -
JForum源代码研究大纲
1. 如何实现自动登录?2. 分页是如何实现的?3. 关于Cookie与Session问题?4. 如何修改Tomcat的默认主页?5. “走两步”?(注册、注销、登录、发帖、管理员配置、)6. 缓存问题?7. 单元测试问题?8. 如何实现“页面风格”的可定制?9. 国际化问题?10. “分区”、“版块”、“子版块”、“新帖”、“多页的帖子”的UR...2010-04-15 15:04:36 · 162 阅读 · 0 评论 -
JForum源代码研究—权限拦截与跳转到原请求页面
先体验一下在未登录的情况下,点击“发表主题”:跳转到登录页面,登录成功后,跳转到“发表新主题”页面。 这是很多Web应用中常见的“权限拦截”。JForum是如何实现的呢? 在JForum中有Group和Role的概念。每个用户(包括未登录的匿名游客)都至少属于一个组。每个组都有一套权限(Permissions),或者称之为角色(Roles)。虽然组与组之间可以有父子关系,但仅仅是名...2010-03-29 17:12:03 · 141 阅读 · 0 评论 -
JForum源代码研究—监控配置文件的修改
监控配置文件的修改,即修改配置文件后实时生效。 public interface FileChangeListener{ /** * Invoked when a file changes * * @param filename Name of the changed file */ public void fileChanged(String fil...2010-03-22 14:42:18 · 182 阅读 · 0 评论 -
JForum源代码研究—首页、注册和登录
JForum的MVC实现参考:http://www.iteye.com/topic/519446 JForum首页安装直接将jforum-2.1.8.war仍在Tomcat webapps目录下。在浏览器地址栏输入:http://127.0.0.1:8088/jforum-2.1.8,URL自动变为http://127.0.0.1:8088/jforum-2.1.8/...2010-03-22 14:12:15 · 338 阅读 · 0 评论 -
JForum源代码研究—web.xml
web.xml该文件非常简洁。 一个过滤器 <filter> <filter-name>clickstream-jforum</filter-name> <filter-class>net.jforum.util.legacy.clickstream.ClickstreamFilter<...2010-03-22 14:11:20 · 155 阅读 · 0 评论 -
JForum源代码研究—命令模式(Command pattern)
JForum中的MVC 说说MVC之“控制”中所使用的命令模式。 下图是《Java与模式》P824页,47.2节“命令模式的结构”给出的命令模式的类图:按《Java与模式》的描述,命令模式涉及到五个角色,它们分别是:客户(Client)角色命令(Command)角色具体命令(ConcreteCommand)角色请求者(Invoker)角色接受者(Rec...2010-03-19 11:25:44 · 167 阅读 · 0 评论 -
JForum源代码研究—国际化,I18N
Java类中只有net.jforum.util.I18n用于实现国际化。配置文件在WEB-INF\config\languages\。2.1.8版本支持9中文字。在众多.html文件中,通过I18n.getMessage(String m)实现国际化。 JForum支持对配置文件的修改进行监控,即修改配置文件后可以实时生效。 注意多个java.util.Properties对...原创 2010-02-08 16:52:54 · 181 阅读 · 0 评论 -
JForum源代码研究—Cache,缓存
在JForum中,net.jforum.cache.CacheEngine接口提供了这些方法:可以存放或取回多个(key,value)对(其中value的类型为非Map)可以存放或取回多个(key,Map)对,而Map中又存放多个(key,value)对(其中value的类型为非Map)我觉得,只有第一类方法,不要第二类方法也是可以的。之所以有第二类,可能是出于分类管理的考虑...原创 2010-02-03 10:21:42 · 205 阅读 · 0 评论 -
JForum源代码研究—Cookie,Session
先熟悉一下javax.servlet.http.Cookie和javax.servlet.http.HttpSession。 JForum系统有一项功能是:实时显示在线的注册会员数、匿名访客数。 登录本机的JForum,并选择“自动登录”后,可以看到如下的Cookie信息: SystemGlobals.properties中关于Cookie的配置如下:cook...原创 2010-02-02 15:51:58 · 169 阅读 · 0 评论 -
JForum源代码研究—支持多种数据库
JForum“Support for several popular databases, including MySQL, PostgreSQL, Oracle and HSQLDB”。 JForum系统中用于持久化的实体类被放在net.jforum.entities包下,例如:User、UserSession、Post等。关于实体类的DAO操作被定义在多个接口中,例如:关于U...原创 2010-02-01 10:28:48 · 197 阅读 · 0 评论 -
JForum源代码研究—Class.forName()
JForum在处理数据库连接和支持多种数据库时,都用到了如下图所示的模式。 抽象类 变量 = (抽象类)Class.forName(子类名).newInstance();其中:“子类名”来自于配置文件或在安装系统时由用户指定,当然,该类要有无参构造函数 “变量”只在系统启动时被初始化一次(暂且理解为单例模式) 如不使用这种模式:代码中要...原创 2010-02-01 10:21:05 · 149 阅读 · 0 评论 -
JForum源代码研究—数据库连接池
JForum是如何实现多种数据库连接/连接池方法的? 建立数据库连接的简单方法示意如下:Connection conn = DriverManager.getConnection(url); JForum支持单连接和多种连接池实现,每种连接实现都要继承DBConnection。包括:C3P0PooledConnect、DataSourceConnection、SimpleCon...原创 2010-01-26 11:06:00 · 259 阅读 · 0 评论