一层层把session传递到DAO中不是好的做法,因为这样到处代码都要见到HttpSession对象
你可以考虑先增加一个Filter过滤所有的请求,类似代码
public class MyFilter implements Filter{
public static ThreadLocal session = new ThreadLocal();
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
session.set(((HttpServletRequest)req).getSession());
chain.doFilter(req, resp);
}
}
然后你在DAO中直接MyFilter.session.get()就可以取出Session
ThreadLocal可以保证不会出现线程安全问题