一种页面数据提供方法技术

技术编号:7759168 阅读:279 留言:0更新日期:2012-09-14 01:07
本发明专利技术公开一种网页数据提供方法,通过采用页面静态化以及缓存,能够降低应用服务器和数据库服务器的负荷,避免门户网站的访问压力,提高页面的访问速度,从而提升用户对网站的满意度。

【技术实现步骤摘要】

本专利技术涉及一种网页数据提供方法,特别涉及一种基于数据缓存与静态化的网页数据提供方法,属于互联网

技术介绍
随着互联网技术的发展,市场上已经存在千千万万的网站供用户访问,通过上网获取信息也成了人们所熟知的信息获取方式。通常,用户使用浏览器访问网站,由浏览器生成显示页面,供用户阅读和操作。目前的所采取的流程为用户输入相应操作,浏览器根据用户的输入,向应用服务器发送请求,应用服务器处理相应请求并根据需要向数据库服务器发送请求,数据库服务器收到请求后做出相应运算并将数据返回给应用服务器,应用服 务器对返回数据做出处理并将处理后的数据返回给浏览器,进而生成页面以向用户显示。在实际应用中,应用服务器的资源是有限的,数据库每秒钟所能接收的请求次数也是有限的,所以随着用户数量的迅速增加,采用上述流程方式会导致应用服务器和数据库服务器所做的运算和处理成倍增长,使得应用服务器和数据库服务器的负荷过重,不仅严重降低系统性能,加大门户网站的访问压力,也会降低页面的访问速度,降低用户对网站的满意度。因此,需要一种另外的访问方式,以克服上述访问方式的缺陷,降低门户网站的访问压力,提高页面访问速度,从而提升用户体验。
技术实现思路
本专利技术的目的正是为了提供一种网页数据提供方法,能够降低应用服务器和数据库服务器的负荷,避免门户网站的访问压力,提高页面的访问速度,从而提升用户对网站的满意度。FreeMarker作为一个模板引擎,已经成为基于模板生成文本输出的通用工具,FreeMarker由纯Java编写,被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。本专利技术利用Freemarker给出了一种网页数据提供方法,该网页数据提供方法包括以下步骤步骤I :定制页面模板template ;步骤2 :接收用户的输入请求;步骤3 :根据用户的输入请求获取需要在页面模板上面显示的数据文件data ;步骤4:将模板与数据文件data两者结合在一起,用输出流out生成一个静态化页面;步骤5 :将页面提供给终端用户,供用户进行数据访问。附图说明图I为本专利技术的流程图。具体实施例方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。具体地,本专利技术的网页数据提供方法,如图I所示,包括以下步骤步骤I :定制页面模板template ;步骤2 :接收用户的输入请求;步骤3 :根据用户的输入请求获取需要在页面模板上面显示的数据文件data ;步骤4 :将模板与数据文件data两者结合在一起,用输出流out生成一个静态化页面;步骤5 :将页面提供给终端用户,供用户进行数据访问。 在具体操作过程中,可以利用Freemarker中的template, process (data, out)函数来实现。首先,提供一个页面模板template,然后获取到将要在模板上面显示的数据文件data,将模板与数据文件data两者结合在一起,用输出流out生成一个静态化页面。其中,数据动态从后台如应用服务器处获取,获取到数据之后,再将数据结合定制的模板以生成静态化页面,并最终提供给终端用户访问,这样,访问页面就可以避免请求传递到数据库服务器层面,从而节省了时间,提高了响应速度。其中,页面静态化操作代码示例STransactional(readOnly = true)public void index (CmsSite site, String tpl, Map<String, Object〉data) throws IOException, TemplateException { long time = System. currentTimeMi 11 is (); File f = new File (getIndexPath (site)); File parent = f. getParentFiIe (); if (!parent, exists ()) { parent, mkdirs (); } Writer out = null; try {out = new OutputStreamWriter(new FiIeOutputStream (f),UTF8);Template template = conf.getTemplate (tpl);template, process (data, out);} finally { if (out != null) { out. flush (); out. close (); } } time = System. currentTimeMillis () - time; log. info ("create index page, in {} ms", time); }进一步,利用缓存以提高响应速度。在运行时,数据被存储到缓存中,需要访问数据时,直接从缓存中获得并返回数据,从而避免将请求传到到数据库服务器。对于缓存而言,按照缓存与应用的耦合程度,可以将缓存划分为local cache和remote cache。本专利技术所用至丨J的 local cache 是 ehcache, remote cache 是 memcacheecL其中,local cache最大的优点是应用和cache的时候是在同一个进程内部,请求缓存非常快速,完全不需要网络开销,所以在单独应用不需要集群的情况下或者集群中的cachenode (缓存节点)不需要相互通知的情况下使用local cache比较合适。但因为对于local cache,多个应用无法直接共享缓存,这样在应用集群的情况下,或者缓存组件提供了集群节点相互通知缓存更新的功能时,如果采用广播或者是环路更新,在缓存更新频繁的情况下会导致网络的io开销非常大,严重的时候会影响应用的正常运行,并且,如果缓存中数据量较大的情况下,使用local cache意味着每个应用都有一份这么大的缓存,会造成浪费。所以这种情况下,选择使用remote cache,具体选用Memcached,这在集群或者分布式情况下的是一种比较好的解决方案。具体的,在集群或者分布式的情况下各个应用都可以共享memcached中的数据,这些应用都通过socket和基于tcp/ip协议上层的memcached协议直接连接到memcached,当有一个应用更新了 memcached中的值,所有的应用都能拿到最新的值,这比local cache广播或者环路更新cache节点的性能高,且由于数据只需要保存一份,所以也提高了内存的使用率。 本专利技术公开的网页数据提供方法,通过静态化以及缓存,能够降低应用服务器和数据库服务器的负荷,避免门户网站的访问压力,提高页面的访问速度,从而提升用户对网站的满意度,取得了有益效果。权利要求1.ー种网页数据提供方法,该网页数据提供方法包括以下步骤 步骤I :定制页面模板template ;步骤2:接收用户的输入请求;步骤3 :根据用户的输入请求获取需要在页面模板上面显示的数据文件data ;步骤4 :将模板与数据文件data两者结合在一起,用输出流out生成一个静态化页面;步骤5将页面提供给终端用户,供用户本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:熊运伟张清锁
申请(专利权)人:北京神州数码思特奇信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1