SpringMVC_RequestContextHolder获取请求参数
来源:互联网 发布:java编程思想 pdf 编辑:程序博客网 时间:2024/06/03 13:40
1. 背景
我们在使用spring的时候,经常需要在普通类中获取request参数或session参数。在spring中,我们不可避免会使用到Aspect Oriented Programming (面向切面编程)拦截器,在整合struts2的时候,因为struts2提供了一个接口org.apache.struts2.ServletActionContext,可以很方便的获取到session对象。
//struts2获取请求对象public static HttpServletRequest getRequest(){ return ServletActionContext.getRequest();}//struts2获取输出对象public static HttpServletRequest getResponse(){ return ServletActionContext.getResponse();}
2. 单单是用spring来获取
如果我们的项目没有整合struts2,那么怎样在普通类中获取session,request?
<1>配置web.xml
<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class></listener>
<2>在普通bean中使用
@Autowiredprivate HttpSession session;@Autowiredprivate HttpServletRequest request;
<3>在普通类中使用
//获取requestpublic static HttpServletRequest getRequest(){ HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); return req;}//获取responsepublic static HttpServletReponse getResponse(){ HttpServletResponse resp = ((ServletResponseAttributes) RequestContextHolder.getResponseAttributes()).getResponse(); return resp;}
当然你必须要有一个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 != null;}
阅读全文
0 0
- SpringMVC_RequestContextHolder获取请求参数
- ActionContext获取请求参数
- HttpServletRequest获取请求参数
- 获取请求参数
- 获取请求参数
- Action 获取请求参数
- 获取中文请求参数
- Beego获取请求参数
- SpringMVC获取请求参数
- 请求参数获取
- Springboot获取请求参数
- Express获取请求参数
- 获取HttpActionContext请求参数
- Flask获取请求参数
- servlet获取请求参数
- flask获取请求参数
- SpringMVC请求参数的获取
- jQuery 获取URL请求参数
- 制作镜像并上传到阿里云
- 线程状态和安全
- 基于JPCAP的局域网嗅探器1.0
- 算法训练 明明的随机数
- 《面试》求2个数的最大公约数和最小公倍数
- SpringMVC_RequestContextHolder获取请求参数
- C# MEF
- Linux学习总结(39)——系统管理员应该知道的 20 条 Linux 命令
- quartz 定时任务
- 基于UDP协议的P2P模式即时通信软件1.0
- 【暴力】codeforces 838A Binary Blocks
- android 获取手机中应用运行的时长和次数
- 动态给table 添加 tr(行),实现添加多个对象转载hbiao68
- 快速排序