使用监听器方式获取request对象

一、写监听类

public class SingtonRequest implements ServletRequestListener{
	 private static ThreadLocal<HttpServletRequest> httpServletRequestHolder = 
         new ThreadLocal<HttpServletRequest>();
    @Override
	public void requestInitialized(ServletRequestEvent requestEvent) {
		HttpServletRequest request = (HttpServletRequest) requestEvent.getServletRequest();
        httpServletRequestHolder.set(request); // 绑定到当前线程
	}
	 @Override
	public void requestDestroyed(ServletRequestEvent requestEvent) {
		 httpServletRequestHolder.remove(); // 清理资源引用
	}
    public static HttpServletRequest getHttpServletRequest() {
	        return httpServletRequestHolder.get();
	}
}

二、配监听

<listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
	<listener>
        <listener-class>com.ylzinfo.psBusiness.checkAuthor.dto.SingtonRequest</listener-class>
    </listener>

猜你喜欢

转载自blog.csdn.net/qq_35008624/article/details/83749372