spring-mvc 非 controller 层获取HttpServletRequest
2016-02-23 08:53
399 查看
spring-mvc HttpServletRequest RequestContextListener RequestContextHolder
在项目中记录操作日志,是一种很常见的需求。
有时我们在service或者dao层记录日志,需要同时保存访问ip、登录用户名等。如果从controller层把HttpServletRequest 对象传过去会显得很麻烦。HttpSession可以通过HttpServletRequest 间接获取。
需要注意的是RequestContextListener实现了javax.servlet.ServletRequestListener,这是servlet2.4之后才有的,一些比较老的容器使用这一功能会报空指针异常。
?
在web.xml配置
?
在service或者dao中获取HttpServletRequest 的代码如下
?
为了方便,可以如上代码提取到一个工具方法中,避免重复。
他的原理就是使用ThreadLocal,RequestContextListener监听器将HttpServletRequest绑定到当前线程。以下是部分源码
?
在项目中记录操作日志,是一种很常见的需求。
有时我们在service或者dao层记录日志,需要同时保存访问ip、登录用户名等。如果从controller层把HttpServletRequest 对象传过去会显得很麻烦。HttpSession可以通过HttpServletRequest 间接获取。
需要注意的是RequestContextListener实现了javax.servlet.ServletRequestListener,这是servlet2.4之后才有的,一些比较老的容器使用这一功能会报空指针异常。
?
?
?
他的原理就是使用ThreadLocal,RequestContextListener监听器将HttpServletRequest绑定到当前线程。以下是部分源码
?
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- 详解Java的Spring框架中的事务管理方式
- 解析Java的Spring框架的BeanPostProcessor发布处理器
- Java开发框架spring实现自定义缓存标签
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置