当前位置 > 主页 > 万和大讲堂 >


Java普通类取request|sessio

2016-02-25 10:15

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

 

  具体如下:

 

  实现步骤:

 

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

 

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

 

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

 

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

 

  具体如下:南京Java软件培训

 

  [java]

 

  public class SystemRequestContext {

 

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

 

  private static ThreadLocal<HttpSession> session = new ThreadLocal<HttpSession>();

 

  public static void removeHttpSession()南京Java软件培训

 

  {

 

  session.remove();

 

  }

 

  public static HttpSession getSession() {

 

  return session.get();

 

  }

 

  public static void setSession(HttpSession _session) {

 

  session.set(_session);

 

  }

 

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

 

  [java]

 

  SystemRequestContext

 

  代码如下:

 

  [java]

 

  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.如何使用:

 

  [java]

 

  public class UserModuleValidateTag {

 

  public static boolean validateModule(String module)

 

  {

 

  HttpServletRequest request = SystemRequestContext.getHttpRequest();

 

  if(null!=request)南京Java软件培训

 

  System.out.println("^_^"+request);


  Java是计算机领域的“普通话”,是打开计算机科学之门的钥匙;学好Java使你能真正从“计算机系统底层”角度理解计算机;学好Java能把计算机玩弄于股掌之上,成为计算机系统的专家;学好Java是成为编程高手的必经之路。


  93年成立至今,江苏万和计算机培训中心培养的Java软件工程师数万名,万名学员在众多合作企业中就职,他们当中有很多人已经走上了管理岗位,在业界不仅树立起良好的口碑,同时也增加了良好的人脉关系,为学员构筑无障碍就业提供独有通道。


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入