Jfinal 在service中优雅获取session

  • • 发表于2019-05-24 08:59:32.0
  • • 作者 小徐同学
  • • 139 次浏览
  • • 0 条评论
  • • 最后编辑时间 2019-05-24 08:59:32.0
  • • 来自 [JFinal]
工具类中的方法常做成 static 方法,从而不需要事先存入 session,以免对 session误 用。工具类通常可以直接这样用: MyKit.justDoIt(...) 即可。

    如果确实需要在任意地方得到 session,也是分分钟打完收工的事:

// 先做一个工具类方便在任意地方获取 session
public class SessionKit {
  private static ThreadLocal tl = new ThreadLcoal<HttpSession>();

  public static void put(HttpSession s) {
     tl.put(s);
  }

  public static HttpSession get() {
    return tl.get();
  }

  public static void remove() {
    tl.remove();
  }
}

// 做一个拦截器,存放、获取、删除 session
public class SessionInter implements Interceptor {
  public void intercept(Invocation inv) {
    SessionKit.put(inv.getController().getSession(true));
    try {
      inv.invoke();
    }
    finally {
      SessionKit.remove();
    }
  }
}

// 在controller 之外可以这样来获取session 
SessionKit.get();
评论区(共0条评论)
0条评论
Ctrl+Enter
作者

Michael

小徐同学

帖子:34 回复:0

全栈搬运工

作者详情》
Top