1. 程式人生 > >Java普通類取request | session

Java普通類取request | session

很多人在找,在一個普通類裡如何才能取系統的request或session,我也找了下,但沒有,就自己實現了一下,期待需要的有緣人,希望能幫到一點點。

具體如下:

實現步驟:

1.定義一個執行緒類,普通的:

類裡最主要的就是定義了一個引數:

private static ThreadLocal<HttpServletRequest> httpRequest = new ThreadLocal<HttpServletRequest>();

另外給了set  get  remove和執行緒相關的三個方法;

具體如下:

public class SystemRequestContext {
	
	private static ThreadLocal<HttpServletRequest> httpRequest = new ThreadLocal<HttpServletRequest>();
	private static ThreadLocal<HttpSession> session = new ThreadLocal<HttpSession>();
	
	public static void removeHttpSession()
	{
		session.remove();
	}
	
	public static HttpSession getSession() {
		return session.get();
	}

	public static void setSession(HttpSession _session) {
		session.set(_session);
	}

2.定義一個filter,攔截所有的請求,把request裝入

SystemRequestContext 
程式碼如下:
public void doFilter(ServletRequest req, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)req;
		SystemRequestContext.setHttpRequest(request);
		SystemRequestContext.setSession(request.getSession());
		try{
			chain.doFilter(request, response);
		}finally{
			SystemRequestContext.removeHttpRequest();
			SystemRequestContext.removeHttpSession();
		}
	}

3.如何使用:
public class UserModuleValidateTag {
	
	public static boolean validateModule(String module)
	{
		HttpServletRequest request = SystemRequestContext.getHttpRequest();
		if(null!=request)
			System.out.println("^_^"+request);



相關推薦

Java普通request | session

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

Java普通中使用requestsession

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

java普通中,獲取request

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

java-普通文件@Autowired自動註入為null

bean con etc 列表 tco oid 運行 top sync @Autowired註解在非Controller中註入為null 1、配置文件(類文件所在的包) <context:component-scan base-package="net.nblh.u

Spring如何管理Java普通Java獲取Spring容器的bean)

方法一:在初始化時儲存ApplicationContext物件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.x

Java普通中獲得Spring管理的

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

Java普通獲取Bean工具

       Spring中提供一些Aware相關介面,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,例項這些 Aware介面的Bean在被初始之後

java普通獲取Spring中bean方法

用的是SSI框架,寫了一個axis2的webService,因為類中需要對資料庫操作,所以就要輸入service, HttpServletRequest request = ServletActionContext.getRequest();ServletContext s

關於java普通怎樣獲取當前的WebRoot目錄。

前陣子公司安排去另一個專案組幫忙,其中用到了FCKeditor。FCKeditor我們都知道,是一款不錯的上傳下載的外掛,由於剛剛接觸FCKeditor,而且之前開發人員由於一些原因離職,所以我開始慢慢的探索FCKeditor。其中要求FCKeditor的檔案儲存目錄隨著專

spring的普通中如何sessionrequest對像

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

spring普通獲取sessionrequest物件

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

普通java獲取request

1:用到一個類ThreadLocal    解說:通常在多執行緒中,當使用ThreadLocal維護變數時,ThreadLocal為每個使用該變數的執行緒提供獨立         的變數副本,所以每一個執行緒都可以獨立地改變自己的副本,而不會影響其它執行緒所對應的副本. 2

普通中獲取request,session

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

JAVA基本型大小與值範圍?

false 特殊 數據類型 字節 true ima 指令 它的 ges 布爾類型boolean比較特殊,盡管Java虛擬機定義了boolean類型,但虛擬機對boolean類型的支持是有限的,沒有為boolean值單獨設計JVM指令。操作布爾值的表達式在編譯之後,它使用的

Java byte 型的值範圍是-128~127

com 基本數據類型 single static 數據 數據類型 blank tle -128 為什麽Java byte 類型的取值範圍是-128~127 : http://blog.163.com/[email protected]/blog/static/47

java抽象普通的區別

java 類實例化 有一種 之前 代碼 普通 bsp 都在 class 1.抽象類不能被實例化。 2.抽象類可以有構造函數,被繼承時子類必須繼承父類一個構造方法,抽象方法不能被聲明為靜態。 3.抽象方法只需申明,而無需實現,抽象類中可以允許普通方法有主體 4.含有抽象方法的

Java在非servlet的中獲取session的方法

ServletRequestAttributes servletReqAttr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest

java獲取request方法

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

Java 抽象普通、介面的區別——看完你就頓悟了

 2、普通類和抽象類都可以被繼承,但是抽象類被繼承後子類必須重寫繼承的方法,除非自類也是抽象類。 看一個例項: publicclass Pet {   publicvoid play(){                //這是寵物類,普通父類,方法裡是空的 }   }   -----------

springMVC 返回型別選擇 以及 SpringMVC中model,modelMap.request,session值順序

spring mvc處理方法支援如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面將對具體的一一進行說明: ModelAndView Java程式碼  @RequestMapping("/