Java普通类中使用request和session_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java普通类中使用request和session

Java普通类中使用request和session

 2013/10/10 15:19:01  vipshichg  程序员俱乐部  我要评论(0)
  • 摘要:很多人都想,在一个普通类里如何才能获取系统的request或session,我也找了,但没有,就自己实现了一下,期待需要的有缘人,希望能帮到一点点。具体如下:实现步骤:1.定义一个线程类,普通的:类里最主要的就是定义了一个参数:privatestaticThreadLocal<HttpServletRequest>httpRequest=newThreadLocal<HttpServletRequest>();另外给了setgetremove和线程相关的三个方法
  • 标签:使用 Java

很多人都想,在一个普通类里如何才能获取系统的request或session,我也找了,但没有,就自己实现了一下,期待需要的有缘人,希望能帮到一点点。

  具体如下:

  实现步骤:

  1.定义一个线程类,普通的:

  类里最主要的就是定义了一个参数:

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

  另外给了set? get? remove和线程相关的三个方法;

  具体如下:

Java代码??收藏代码class="star" src="/Upload/Images/2013101015/40B102E0EF997EA6.png">
  1. public?class?SystemRequestContext?{??
  2.   private?static?ThreadLocal<HttpServletRequest>?httpRequest?=?new?ThreadLocal<HttpServletRequest>();??
  3.   private?static?ThreadLocal<HttpSession>?session?=?new?ThreadLocal<HttpSession>();??
  4.   public?static?void?removeHttpSession()??
  5.   {??
  6.   session.remove();??
  7.   }??
  8.   public?static?HttpSession?getSession()?{??
  9.   return?session.get();??
  10.   }??
  11.   public?static?void?setSession(HttpSession?_session)?{??
  12.   session.set(_session);??
  13.   }??

?2.定义一个filter,拦截所有的请求,把request装入

? SystemRequestContext

Java代码??收藏代码
  1. public?void?doFilter(ServletRequest?req,?ServletResponse?response,??
  2.   FilterChain?chain)?throws?IOException,?ServletException?{??
  3.  ???? HttpServletRequest?request?=?(HttpServletRequest)req;??
  4.   ????SystemRequestContext.setHttpRequest(request);??
  5.   ????SystemRequestContext.setSession(request.getSession());??
  6.   try{??
  7.  ????? chain.doFilter(request,?response);??
  8.   }finally{??
  9.   ?????SystemRequestContext.removeHttpRequest();??
  10.   ?????SystemRequestContext.removeHttpSession();??
  11.   }??
  12. }??

?3.如何使用:

Java代码??收藏代码
  1. public?class?UserModuleValidateTag?{??
  2.   public?static?boolean?validateModule(String?module){??
  3.  ??????? HttpServletRequest?request?=????SystemRequestContext.getHttpRequest();??
  4.   ??????ifnull!=request)??
  5.   ????System.out.println("^_^"+request);??
  6. ????}??
  7. }??

?

发表评论
用户名: 匿名