工具类中的方法常做成 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();