Jfinal有没有在获取session或request信息的工具类

2025-04-29 14:01:23
推荐回答(1个)
回答1:

工具类中的方法常做成 static 方法,从而不需要事先存入 session,以免对 session误 用。工具类通常可以直接这样用: MyKit.justDoIt(...) 即可。
如果确实需要在任意地方得到 session,也是分分钟打完收工的事:
// 先做一个工具类方便在任意地方获取 session
public class SessionKit {
private static ThreadLocal tl = new ThreadLcoal();

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();