1. 程式人生 > >普通java類獲取request

普通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();
         }
  }