我配了个HtpSessionAttributeListener来监听session的增加, 替换个释放
分别在HttpSessionAttributeListener对应的三个方法中打印add, update, remove在登录那块我拿tomcat测试, 发现了怪问题, 不加HtpSessionAttributeListener前tomcat启动会首先加载hibernate的xml文件, 然后开始连接数据库, 然后执行一段HQL(因为登录页面我要预处理). 
加了之后, 发现命令行窗口下显示tomcat加载xml文件前打印了三个add, 然后加载xml,  然后连接数据库, 然后执行hql, 然后又是两个update. 紧接着才出现登录页面, 这时我都还没登录, 何来的session呢
等我登录进去后, 我要往session赋八个属性值, 命令行打印了八个add ,这是对的
但紧接着是八个update, 而且这些update间还插入了程序执行的一段hql代码. 
请问何解

解决方案 »

  1.   

    我又HttpSessionListener试了一下
    发现我对session理解的不够, 我在HttpSessionListener两个方法中分别打印create, destory
    然后如上面那样运行程序, 发现tomcat加载xml前依次打印了destory,create, 细细一想应该是容器为了保险起见先destroy, 然后创建了session, 这时session已存在, 而无任何属性值, 但还是不明白我上面说的那三个add是哪来的, 难道容器创建session的时候会赋三个初始值进去,以及后面的两个update, 都很困惑?