请问Jfinal中的controller共享变量吗?

私奔去月球 发布于 2014/11/12 22:08
阅读 163
收藏 1

我在controller中声明一个变量

Boolean isLogin = false;

请问isLogin是共享的变量吗?

@jfinal

以下是问题补充:

@私奔去月球:多用户同时访问系统会共享这个变量吗。我看了一下Controller源码,里面有 private String urlPara; private String[] urlParaArray; 等等,这样的话应该是不共享的吧? (2014/11/12 22:11)
加载中
0
JFinal
JFinal
不是共享,放心使用,只要不用 static 关键字即可
0
黄昏武士
黄昏武士

我不理解你的共享什么意思。但我猜测你想实现一个功能是保存登陆状态。

如果是这样的话,我想你需要采用Session来保存用户的一些数据,比如登陆凭证等。

JFinal具体我没研究,但每个Controller应该是个单例,这就意味着当前上下文里只有一个特定的Controller实例存在,如果其中一个线程给某个Controller实例赋值,没有清除掉,其他线程应该能够拿到这个值。

不知道我理解对了没有,欢迎拍砖!

泷泽
我看了一下源码,追踪了一下请求的过程,可以找到这样一行代码: Controller controller = action.getControllerClass().newInstance(); 具体位置是ActionHandler的handle方法,可见是为每个请求创建单独的对象,可以避免线程安全问题
返回顶部
顶部