服务器每几秒就有上千个请求一个servlet,servlet请求数据库的一张表。这张表一般不怎么改变这个servlet怎么写比较好呢?

解决方案 »

  1.   

    OSCACHE或用静态模板做,直到数据库数据有变化才重新生成静态HTML!
      

  2.   

    楼上各位能详细点吗cache怎么做?把表做成对象存在ServletContext中吗,希望各位能详细点。我比较菜。。OSCACHE看了下貌似不错,servlet只返回服务器一些简单的消息,不返回页面。
    我希望能多做些东西,打算自己写。多线程?servlet本身不就是多线程的吗。再怎么多线程?
      

  3.   


    最简单的用一个单例,里面保存一个变量,只在类加载的时候初始化一次。提供用static方法获取该变量。servlet里面直接调就完了
      

  4.   

    应该优先考虑缓存,
    简单的说,你自己创建个单例类,定义个全局hashtable
    这个hashtable的key,你可以用记录的id或者code,唯一标示就行,value就是表记录的实体对象。
    增加,删除或者更新操作,刷新这个hashtable。
    这个单例类,你可以系统起的时候加载,也可以第一次读的时候加载,建议前者。
      

  5.   

    OSCACHE在网上查下
    模板的做法,看看freeer,不直接写JSP,而改写模板,后台从数据库里读数据,为模板指定的一些位置赋上数据,将两者合二为一生成HTML,访问HTML肯定很快,当数据库数据有变化时,上述的行为重新执行一遍!
      

  6.   

    每秒上千个请求?
    你这个搞啥的,请求这么多?
    表数据基本不会改变的话,
    直接在系统启动的时候就把数据加载出来放缓存里面或放某jsp形式的缓存里面,
    或者直接弄成静态的html页面,
    直接转发到这个html页面就OK
      

  7.   

    tomcat启动时加载到缓存。后面只要读缓存就可以了。很简单的。
    有啥不懂可以来QQ群14471754。不过你对缓存都不会就不要来了,本群希望有能力点的人进群。
      

  8.   

    Mem Cache或者你自己实现cache,如果你自己实现cache的话需要考虑内存问题。
    实用Mem Cache的话可以使用较大的缓存内存
      

  9.   

    小弟新手,有个想法,大家点评下,谢谢:
    在项目中创建一个类DataUtil,该类采用单例模式。该类有一个RecordSet属性,用于存放LZ所说的那张表的数据。在项目启动时,将DataUtil的实例创建出来,放到ServletContext中。另外,在对该表有变更操作的地方,将该DataUtil的实例从ServletContext中取出来,将RecordSet更新后,放回ServletContext中,这样缓冲可能好一点。