需要频繁访问数据库的网页怎么处理? 服务器每几秒就有上千个请求一个servlet,servlet请求数据库的一张表。这张表一般不怎么改变这个servlet怎么写比较好呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OSCACHE或用静态模板做,直到数据库数据有变化才重新生成静态HTML! 楼上各位能详细点吗cache怎么做?把表做成对象存在ServletContext中吗,希望各位能详细点。我比较菜。。OSCACHE看了下貌似不错,servlet只返回服务器一些简单的消息,不返回页面。我希望能多做些东西,打算自己写。多线程?servlet本身不就是多线程的吗。再怎么多线程? 最简单的用一个单例,里面保存一个变量,只在类加载的时候初始化一次。提供用static方法获取该变量。servlet里面直接调就完了 应该优先考虑缓存,简单的说,你自己创建个单例类,定义个全局hashtable这个hashtable的key,你可以用记录的id或者code,唯一标示就行,value就是表记录的实体对象。增加,删除或者更新操作,刷新这个hashtable。这个单例类,你可以系统起的时候加载,也可以第一次读的时候加载,建议前者。 OSCACHE在网上查下模板的做法,看看freeer,不直接写JSP,而改写模板,后台从数据库里读数据,为模板指定的一些位置赋上数据,将两者合二为一生成HTML,访问HTML肯定很快,当数据库数据有变化时,上述的行为重新执行一遍! 每秒上千个请求?你这个搞啥的,请求这么多?表数据基本不会改变的话,直接在系统启动的时候就把数据加载出来放缓存里面或放某jsp形式的缓存里面,或者直接弄成静态的html页面,直接转发到这个html页面就OK tomcat启动时加载到缓存。后面只要读缓存就可以了。很简单的。有啥不懂可以来QQ群14471754。不过你对缓存都不会就不要来了,本群希望有能力点的人进群。 Mem Cache或者你自己实现cache,如果你自己实现cache的话需要考虑内存问题。实用Mem Cache的话可以使用较大的缓存内存 小弟新手,有个想法,大家点评下,谢谢:在项目中创建一个类DataUtil,该类采用单例模式。该类有一个RecordSet属性,用于存放LZ所说的那张表的数据。在项目启动时,将DataUtil的实例创建出来,放到ServletContext中。另外,在对该表有变更操作的地方,将该DataUtil的实例从ServletContext中取出来,将RecordSet更新后,放回ServletContext中,这样缓冲可能好一点。 Java程序连接各种数据库的方法 大家帮忙想个sql语句 快疯了 奇怪:连Server2000时,时好时坏,异常Error establishing socket hibernate中Session的load出的问题 请教一个日志问题 关于Tomcat的问题 请帮测试一下我的Portal 关于prepareStatement的问题 几个关于EJB的概念请教 struts.xml中result可以设置转发到一个action么?? java date判断 用java如何实现文件的复制功能(急)
我希望能多做些东西,打算自己写。多线程?servlet本身不就是多线程的吗。再怎么多线程?
最简单的用一个单例,里面保存一个变量,只在类加载的时候初始化一次。提供用static方法获取该变量。servlet里面直接调就完了
简单的说,你自己创建个单例类,定义个全局hashtable
这个hashtable的key,你可以用记录的id或者code,唯一标示就行,value就是表记录的实体对象。
增加,删除或者更新操作,刷新这个hashtable。
这个单例类,你可以系统起的时候加载,也可以第一次读的时候加载,建议前者。
模板的做法,看看freeer,不直接写JSP,而改写模板,后台从数据库里读数据,为模板指定的一些位置赋上数据,将两者合二为一生成HTML,访问HTML肯定很快,当数据库数据有变化时,上述的行为重新执行一遍!
你这个搞啥的,请求这么多?
表数据基本不会改变的话,
直接在系统启动的时候就把数据加载出来放缓存里面或放某jsp形式的缓存里面,
或者直接弄成静态的html页面,
直接转发到这个html页面就OK
有啥不懂可以来QQ群14471754。不过你对缓存都不会就不要来了,本群希望有能力点的人进群。
实用Mem Cache的话可以使用较大的缓存内存
在项目中创建一个类DataUtil,该类采用单例模式。该类有一个RecordSet属性,用于存放LZ所说的那张表的数据。在项目启动时,将DataUtil的实例创建出来,放到ServletContext中。另外,在对该表有变更操作的地方,将该DataUtil的实例从ServletContext中取出来,将RecordSet更新后,放回ServletContext中,这样缓冲可能好一点。