普通java類獲取request
1:用到一個類ThreadLocal
解說:通常在多執行緒中,當使用ThreadLocal維護變數時,ThreadLocal為每個使用該變數的執行緒提供獨立
的變數副本,所以每一個執行緒都可以獨立地改變自己的副本,而不會影響其它執行緒所對應的副本.
2:我寫一個Filter/寫個WebContext類
Filter目的:得到HttpServletRequest【在chain.doFilter方法執行前】
WebContext.requestHodler.set(request);
WebContext目的:
public class WebContext {
public static ThreadLocal<HttpServletRequest> requestHodler = new
ThreadLocal<HttpServletRequest>();
public HttpServletRequest getRequest(){
return requestHodler.get();
}
public HttpSession getSession(){
return requestHodler.get().getSession();
}
public ServletContext getServletContext(){
return requestHodler.get().getSession().getServletContext();
}
}