你必须要有一个request的引用,否则是取不到的。request可以通过控制器传入,有了request自然就可以取到session了,或者可以通过spring的WebUtils取Session数据,如下:
拦截器举例:
public boolean preHandle(>
这个功能老版本servlet规范中有,新版本中好像被屏蔽了。可以换一种做法,写一个session监听。创建时将session id与session对象构造一个hashMap放到 application中去,销毁时从application中移除。然后你就可以获取了。
1 v$mystat视图
SQL> desc v$mystat
Name Null Type
------------------------------------------------- --------------
SID NUMBER
STATISTIC# NUMBER
VALUE NUMBER
SQL> select sid from v$mystat where rownum=1;
SID
----------
19
2 使用userenv(‘sid’) 直接获取
这种方法只能在oracle 10g以后可以使用。
SQL> select userenv('sid') from dual;
USERENV('SID')
--------------
19
3 结合 userenv('sessionid') 与 v$session 视图
userenv('sessionid') 返回的是session audit id其对应v$session 的audsid字段。
这在之前的blog中有说明。
OracleSYSAUDSES$ 序列 说明
>
1、Shiro默认的Session处理方式
<!-- 定义 Shiro 主要业务对象 -->
<bean id="securityManager" class="orgapacheshirowebmgtDefaultWebSecurityManager">
<!-- <property name="sessionManager" ref="sessionManager" /> -->
<property name="realm" ref="systemAuthorizingRealm" />
<property name="cacheManager" ref="shiroCacheManager" />
</bean>
这里从DefaultWebSecurityManager这里看起,这个代码是定义的Shiro安全管理对象,看下面的构造方法(代码 1-1)
(代码 1-1)
public DefaultWebSecurityManager() {
super();
((DefaultSubjectDAO) thissubjectDAO)setSessionStorageEvaluator(new DefaultWebSessionStorageEvaluator());
thissessionMode = >
你要是不用框架的话,可能得不到session。但是你用框架应该没问题。我用的是dwr框架,当你从前台页面调用后台方法时
例如:aagetInfo(xx,xx)这个方法到后台时,它会自动包含request,response两对象参数过去。这样就可以取到session 了。
结论:请用ajax框架
以上就是关于使用springmvc时,如何在普通类中获取到session对象呢全部的内容,包括:使用springmvc时,如何在普通类中获取到session对象呢、大神们,请教下,java如何获取session的东西、java如何通过sessionid获取session对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)