您的位置:首页 > 编程语言 > Java开发

spring在普通类中获取session和request,springsession

2016-03-14 15:19 357 查看


spring在普通类中获取session和request,springsession

在使用spring时,经常需要在普通类中获取session,request等对像.

比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对像.

用法:ServletActionContext.getRequest().getSession();

但在单独使用spring时如何在普通类中获取session,reuqest呢?

首先要在web.xml增加如下代码:
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>


使用方法:

  在普通bean中
@Autowired
private HttpSession session;

@Autowired
private HttpServletRequest request;


  在普通类中
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();


 

使用springmvc时,怎在普通类中获取到session对象?

你必须要有一个request的引用,否则是取不到的。request可以通过控制器传入,有了request自然就可以取到session了,或者可以通过spring的WebUtils取Session数据,如下:

拦截器举例:

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws

Exception {

String context = (String) WebUtils.getSessionAttribute(request,

"context_key");

return context != null ;

}

 

java 怎在一个普通的类中怎获取session 值

只能在servlet调用参数,传递过去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring session