使用springmvc时,如何在普通类中获取到session对象呢

使用springmvc时,如何在普通类中获取到session对象呢,第1张

你必须要有一个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对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9313992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存