JForumExecutionContext是一个很有意思的类!顾名思义,这是一个执行期或运行期上下文类。嗨,等于没说!先看其类变量:
private static ThreadLocal userData = new ThreadLocal();
private static Logger logger = Logger.getLogger(JForumExecutionContext.class);
private static Configuration templateConfig;
private Connection conn;
private ForumContext forumContext;
private SimpleHash context = new SimpleHash(ObjectWrapper.BEANS_WRAPPER);
private String redirectTo;
private String contentType;
private boolean isCustomContent;
private boolean enableRollback;
静态变量
logger
就不多说了。静态变量templateConfig,
这是freemarker
的经典用法,也不多说了。对于非静态变量,都是特定用户相关的
。即用户
A
的“
redirectTo
”与用户
B
的“
redirectTo
”值是不同的。
context
也是和用户相关,用户
A
可能会使用
context.put("userName", "
张三
")
,而用户
B
可能会使用
context.put("userName",
"
李四
")
,在页面上可能会这样:你好,
${userName}
。每个用户的
HttpServletRequest
和
HttpServletResponse
也是不同的,因此,forumContext也是和用户相关的。contentType、isCustomConent和enableRollback都是和特定用户相关的。
特别地,为什么
conn
也是和用户相关的呢?通常,数据库连接应该和用户没有关系啊!?关键是,当用户请求执行到最后,可能用户
A
要提交,而用户
B
要回滚,要做到这一点必须要记录用户
A
最初获得的是哪个
conn
,而不能随便从连接池中获得一个
conn
,因此,
conn
也是和用户相关的。如果你查看JForum的诸多
DAO
方法,你会发现系统使用JForumExecutionContext.getConnection()
而不是从连接池中
来获得数据库连接。当然,当用户的请求被处理完毕后,要使用JForumExecutionContext.
finish()
来释放数据库连接。
“每个用户都有自己独立的变量值”,联想一下“每个线程都有自己独立的变量值”,你一定会想起
ThreadLocal
的用法。这里
userData
是静态的,这是
ThreadLocal API
里推荐
使用的修饰符。
分享到:
相关推荐
JForum是著名的开源论坛,支持多达数十种的多国语言,其中包括简体中文(。JForumJForum功能强大,界面美观,代码结构清晰
jforum3源代码数据库
jforum配置安装介绍+源代码 jforum配置安装介绍+源代码
jforum漏洞利用源代码
jforum的源代码和类包,很方便集成和学习。同时里面有一个物理结构图,能方便的清晰的了解jforum的整体设计,对想研究和使用开源论坛的开发者非常好哦。
jforum开源论坛 官方源代码(2.1.9)
jforum 2.1.9源码 内附安装开发文档
jforum-2.1.8版本完整源代码(1),因为完整版本超过15mb,因此分成两部分下载。
内涵jforum2.1.9源码,并且使用sql server 2008数据库,已配置完成,可以直接部署使用和学习
它提供了抽象的接口、高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制、多语言支持(包括中文)、高性能、可自定义的用户接口、安全、支持多数据库等等特性。 JForum 采用 FreeMarker 作为
jforum-2.1.8版本完整源代码(2) 请找到(1)部分一起解压。
jforum 完整源代码,从svn上 导出 没有任何修改
JForum - Java论坛系统 数据库表结构,如:附件关系表JFORUM_ATTACH,附件详细信息表JFORUM_ATTACH_DESC,用户分组表JFORUM_GROUPS等表结构说明,如帖子表JFORUM_POSTS说明: 名称 字段名 字段类型 字段说明 帖子...
JForum 开源代码,是很好的freeMaker学习素材。
对于我们已有的WEB应用中的用户,若该用户已经登陆,并通过 联结迁移到JForum页面时,JForum要能够识别该用户已经登陆(不需要二次登陆)才不会让用户感到别扭(对用户来说,就好像使用的是同一个系统似的)。...
jforum-2.1.8-编译代码.zip
12、版面对用户可见关系表JFORUM_FORUMS_WATCH 5 13、用户分组表JFORUM_GROUPS 5 14、关系表JFORUM_KARMA 5 15、帖子表JFORUM_POSTS 5 16、帖子内容表JFORUM_POSTS_TEXT 6 17、消息表JFORUM_PRIVMSGS 6 18、...
JForum3 jforum java 开源论坛 论坛
JForum功能强大,界面美观,加上代码结构清晰,而且采用的是BSD授权,不必担心不必要的版权纠纷。可以说JForum是论坛二次开发的绝佳选择。 JForum采用的是自己的MVC框架,因此在初次接触的时候可能会有些不习惯,但...
Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...