HTTP的session:
1.概念:提起Session的话,首先想到的是http的session,想到了http这个无状态的协议,没办法保存任何访问对象的信息,所以就出现了session,用来记录访问者的一些信息。
2.HTTP的session的创建时间:一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=“false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的 session对象的来历。
由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。
3.session的销毁时间:
1)Session超时:超时指的是连续一定时间服务器没有收到该Session所对应客户端的请求,并且这个时间超过了服务器设置的Session超时的最大时间;
2)程序调用HttpSession.invalidate();
3)服务器关闭或服务停止。
4、session存放在哪里:服务器端的内存中。不过session可以通过特殊的方式做持久化管理。
hibernate的Session:
而hibernate中的Session呢,则是数据库与应用程序的一次交汇(回话),在这个Session中包含了CRUD的方法;而且因为session是一个轻量级对象,所以他是与数据库的事务绑定的,每执行一个数据库的事务后都应该创建一个新的Session实例。并且在使用完后记得关闭。
List list = this.getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { return session.createSQLQuery(sql).list(); } });