在springmvc中通过过滤器获取request和response
来源:互联网 发布:mac office 完全卸载 编辑:程序博客网 时间:2024/05/28 11:50
搭建页面我就不详细的说了,只是简单的把要配置文件说一下
- 主要配置beans.xml文件和 spring-servlet.xml文件
beans.xml <bean id="timeBasedAccessInterceptor" class="zttc.itat.web.TestInterceptor"> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <ref bean="timeBasedAccessInterceptor"/> </list> </property> </bean>
spring-servlet.xml **注意:配置中一定要去掉<mvc:annotation-driven />,去掉其默认配置,否则会实例化两个,自己写的那个TestInterceptor就不会拦截成功,获取的request和response为空**DefaultAnnotationHandlerMapping ,所以用下面这个就好了。 <context:component-scan base-package="zttc.itat.web"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- TestInterceptor页面代码,这里是继承HandlerInterceptorAdapter,然后在里面preHandle要处理的代码,我这里是是把request和response的值保存起来
package zttc.itat.web;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import zttc.itat.model.RequestResponseContext;public class TestInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub RequestResponseContext.setResponse(response); RequestResponseContext.setRequest(request); return super.preHandle(request, response, handler); }}
- 这里是RequestResponseContext.java里的代码,主要是为了线程安全写的来保存response和request
package zttc.itat.model;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RequestResponseContext { private static ThreadLocal<HttpServletRequest> request_threadLocal = new ThreadLocal<HttpServletRequest>(); private static ThreadLocal<HttpServletResponse> reponse_threadLocal = new ThreadLocal<HttpServletResponse>(); public static void setRequest(HttpServletRequest request) { request_threadLocal.set(request); } public static HttpServletRequest getRequest() { return request_threadLocal.get(); } public static void removeRequest() { request_threadLocal.remove(); } public static void setResponse(HttpServletResponse response) { reponse_threadLocal.set(response); } public static HttpServletResponse getResponse() { return reponse_threadLocal.get(); } public static void removeResponse() { reponse_threadLocal.remove(); }}
- 在其它页面就可以直接RequestResponseContext.getResponse()这样获取response了
0 0
- 在springmvc中通过过滤器获取request和response
- 在SpringMVC中获取request和response
- 在springMVC中 获取request、response、session
- springMVC中获取request和response
- springMVC获取request和response
- springMVC获取request和response
- 如何在非Controller中获取Request和Response:SpringMVC之RequestContextHolder分析
- springMVC 中获取request、response、session方法
- springmvc 获取request response
- SpringMVC获取request对象和response对象
- SpringMVC获取request对象和response对象
- 如何在AOP中获取Request和Response对象
- Struct Action中获取request和response
- ssm框架中获取request和response
- springMVC4中获取request和response对象
- SpringMVC与Struts2中获取request、response对象
- SpringMVC与Struts2中获取request、response对象
- SpringMVC与Struts2中获取request、response对象
- 我的Android进阶之旅------>FastJson的简介
- 模式对话框和无模式对话框的创建总结
- MD5加密
- iOS文字转语音播放
- 【第一弹】【HDU2191】【悼念512汶川大地震遇难同胞——珍惜现在,感恩生活】
- 在springmvc中通过过滤器获取request和response
- jquery.autocomplete.js的简单使用
- web.config文件详解
- No row with the given identifier exists 解决方法
- [JQuery学习笔记]——之一
- 在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry
- 图片滚动代码
- 修改.htaccess的重写规则
- 数据库索引的作用和优点缺点