1. 程式人生 > >spring的普通類中如何取session和request對像

spring的普通類中如何取session和request對像

在使用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> 

註解方式

@Autowired  
private HttpSession session;    
@Autowired  
private HttpServletRequest request;  
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 

第二種:

public class RequestUtils {
	private static final Logger log = LoggerFactory
			.getLogger(RequestUtils.class);
	private static ThreadLocal<HttpServletRequest> requestLocal= new ThreadLocal<HttpServletRequest>();
	

	public static HttpServletRequest getRequest() {
		 return (HttpServletRequest)requestLocal.get();  
	}

	public static void setRequest(HttpServletRequest request) {
		  requestLocal.set(request);  
	}
}
public class GetRequest implements Filter {

    /**
     * Default constructor. 
     */
    public GetRequest() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here
		RequestUtils.setRequest((HttpServletRequest)request);
		// pass the request along the filter chain
		chain.doFilter(request, response);
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}
在web.xml增加如下程式碼: 
<filter>
                <filter-name>GetRequest</filter-name>
		<filter-class>com.filter.GetRequest</filter-class>
</filter>
	<filter-mapping>
		<filter-name>GetRequest</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

相關推薦

spring普通如何sessionrequest

在使用spring時,經常需要在普通類中獲取session,request等對像.  比如一些AOP攔截器類,在有使用struts2時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到sessio

spring在service層獲取sessionrequest

首先要在web.xml增加如下程式碼: <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</li

如何在EOS運算邏輯獲取sessionrequest以及application物件

在EOS的頁面流中是沒法獲取到這些物件,只能在呼叫的邏輯流中的運算邏輯中獲取到這些物件 @Bizlet("") public static void method() { IMapContextFactory contextFactory = com.primeton.ext.common.muo.MUODa

spring普通獲取sessionrequest物件

在使用spring時,經常需要在普通類中獲取session、request物件。 比如一些AOP攔截器類,在有使用struts2時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到session物件。用法: Ser

Java普通使用requestsession

很多人都想,在一個普通類裡如何才能獲取系統的request或session,我也找了,但沒有,就自己實現了一下,期待需要的有緣人,希望能幫到一點點。   具體如下:   實現步驟:   1.定義一個執行緒類,普通的:   類裡最主要的就是定義了一個引數:   private static ThreadLoc

普通獲取request,session

在使用spring時,經常需要在普通類中獲取session,request等對像. 比如一些AOP攔截器類,在有使用struts2時,因為struts2有一個介面使用org.apache.struts2.ServletActionContext即可很方便的取到session

Spring @Autowired註解在utils靜態工具非controller普通使

在SpringMVC框架中,我們經常要使用@Autowired註解注入Service或者Mapper介面,我們也知道,在controller層中注入service介面,在service層中注入其它的service介面或者mapper介面都是可以的,但是如果我們要在我們自己封裝的Utils工具類中或者

怎樣在普通使用被spring管理的bean

在使用spring做開發的時候,有時候會碰到的一個問題是----怎樣在普通的類(不被spring管理、沒有注入到spring容器中)中呼叫spring容器中的bean? 因為呼叫方是普通類,不是被spring管理的bean,所以依賴注入是沒法用了。那麼,有沒有解決辦法呢?當然是有的。

普通引用spring 容器管理的bean

今天遇到一個問題,在webservice介面中去注入spring管理的類的時候出現了空指標的問題,但是呢,這個webservice類並沒有交給spring去做統一管理,那麼要怎麼注入到spring的b

spring boot 在普通獲取HttpServletRequest物件

import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import j

java普通,獲取request

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()

Thymeleaf將ajax返回值拼接外部標籤 js獲取session值及 在普通標籤獲取session

一、Thymeleaf普通標籤中獲取session值<p th:text="${session.test}"></p>① th:text: Thymeleaf的標籤都要加th:作字首② <p></p>: 表示一個段落,可以用來換

Spring 普通POJO如何獲取request物件(使用註解)

在使用spring時,經常遇到需要在普通POJO中獲取request物件的情況,比如在Spring AOP攔截器類中,如何獲取request物件呢 ?  分三步: 第一步:確認環境變數中已經引入org.springframework.web-3.0.5.RELEASE

Java普通獲得Spring管理的

由於有時會寫一些工具類或者單例類,這些類中可能使用到Spring管理的一些類,比如dao,service等,這時就要獲得這些spring管理的類,我們寫測試類中main函式中一般是用: ApplicationContext ac = new ClassPathXmlAp

webformSessionCookies象的用法、登錄保持

登錄界面 expire ron 首選項 images ons ssi none 主界面 一 、webform中Session和Cookies對象的用法 1、Session:   Session:在計算機中,尤其是在網絡應用中,稱為“會話控制”。Session 對象存儲特

static關鍵字,引發的spring普通獲取spring的bean的思考

pan conf ati ets 普通 blog 編譯器 自定義 這也 在c++和java中static關鍵字用於修飾靜態成員變量和成員函數 舉例一個普通的javabean class AA { int a; static int b; geta/set

C#通過反射獲取的方法參數個數,反射調用方法帶參數

new [] 反射 電腦 ram col sta body create using System; using System.Reflection; namespace ConsoleApp2 { class Program { sta

java從實體值會忽略的的問題

spa get pos val light 原因 blog 方法 什麽 在我們java Map中通過get來取值時會忽略的問題是:如果取得一個空值null時,那麽.toString()時就會出錯,而且不知道是什麽原因。 現在我給的具體方法是用條件表達式先判斷一下。 例:

2018/04/21 PHP SessionCookie知識總結

結束 方式 全局變量 過期 ESS 簡單 star 如何 lencod 在之後的工作和學習中,更是發現了自己對於基礎知識的不紮實,於是又返回頭來學習,確實很多東西是之前沒註意或是沒掌握的。 著重講一下這幾個問題 -- 什麽是 Cookie ? 簡單來說:   因為 HTTP

的屬性字段的改寫

override class string tel 保護 static 解釋 oid 父類 子類對父類中的屬性和字段的改寫 剛開始聽老師講,字段要用private來修飾,屬性用public來修飾,通過屬性來控制字段,字段存儲數據。 那為什麽要用private來修飾字段呢