用户登陆模块: 
一.登陆成功后,我设request.setAttribute("lkj",klj);再把页面转到(三.显示信息) 
二.注册功能,我没有设相关的request.setAttribute.. 
三.显示信息,list=hibernateDao.findEntityByHql("from User"). request.setAttribute("users",list); 
做三次测试,得到的结果如下: 
启动tomcat,进入登陆页面,成功登陆四次后,再进行登陆,服务器无法响应,一直处于缓慢加载状态,不能正常登陆了 
再重新启动tomcat,进入注册页面,注册八次后,再进行注册,服务器无法响应,一直处于缓慢加载状态,不能正常注册了 
再重新启动tomcat,进入信息显示页面,重复让它显示信息八次,再进行显示信息,服务器无法响应,一直处于缓慢加载状态,不能正常显示了 
这是什么原因,怎么解决? 

解决方案 »

  1.   

    楼主不应该用 request来存储用户登陆数据,应该用session
    session.setAttribute("lkj",klj);
    list=hibernateDao.findEntityByHql("from User").session.setAttribute("users",list); 楼主要认清session和request的范围,
    request是针对一个当前用户请求,当你再次登陆时,就是新的用户请求了,上述你说登陆4次之后缓慢,因为你服务器需要处理4次请求,缓慢是正常的。或者你其他的客户请求,理解都一样。
    session是针对一个会话,只要你不注销,就不用为某次请求重新登陆。
      

  2.   

    lz的的确犯错了,应该把登录信息放在session中,但是lz的问题我认为并不是应为这个原因造成的,lz你要看看你的数据库链接有没有关闭?
    lz用的是链接池链接数据库的吗?如果是链接池,你要看看你设置的最大链接数是多少?是不是设置得很少,然后你又没有关闭数据库链接,造成数据库链接满了,系统就一直在等待。
      

  3.   

    你保存了信息,request.setAttribute("lkj",klj);为什么在显示信息里没有到这个呀。
    在显示信息里应该是这样的吧。
    list = request.getAttribute("lkj");
      

  4.   

    一楼到五楼的朋友,你们所说的我自己还清楚,但不是那原因引起的.
     我这里的list并不是某个用户的信息,而是当前系统所有用户信息,是时刻在变的.所以我想用session是不合适的,况且这个list我只是为了在另一个页面,显示当前系统的所有用户信息.其它页面用不上.
    六楼的朋友说的,我想可能是这个原因引起的.但我不懂你说的这些,我用的是hibernate管理的数据库,没有发现什么地方特意对连接池的设置.我该如何做?请朋友具体点,我是小菜
      

  5.   


    用hibernate的话,你每次调用完session以后,要把session关闭,否则连接不会释放。
      

  6.   

    9楼的朋友说对了,是那个原因引起的,我用完session关闭后,就不会出现那情况了