CN101789012A - 基于j2ee的web动态页面静态化解决方法 - Google Patents

基于j2ee的web动态页面静态化解决方法 Download PDF

Info

Publication number
CN101789012A
CN101789012A CN 201010105969 CN201010105969A CN101789012A CN 101789012 A CN101789012 A CN 101789012A CN 201010105969 CN201010105969 CN 201010105969 CN 201010105969 A CN201010105969 A CN 201010105969A CN 101789012 A CN101789012 A CN 101789012A
Authority
CN
China
Prior art keywords
page
static
web
dynamic page
dynamic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010105969
Other languages
English (en)
Other versions
CN101789012B (zh
Inventor
马荣海
沈鹏程
兰清
余志刚
刘树权
孙力斌
庞海东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Original Assignee
NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd filed Critical NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Priority to CN 201010105969 priority Critical patent/CN101789012B/zh
Publication of CN101789012A publication Critical patent/CN101789012A/zh
Application granted granted Critical
Publication of CN101789012B publication Critical patent/CN101789012B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种基于J2EE的WEB动态页面静态化解决方法,步骤包括:1)由静态页面生成应用模拟客户端请求,发送请求到原有的动态页面,并将响应对象里的输出流指向到本地文件;2)WEB应用读取由“静态页面生成应用”生成的静态页面;静态页面生成好以后,用户对WEB应用的动态页面地址的访问就会重定向响应的静态页面。本方法采用基于J2EE的动态页面静态化解决方案,程序上不做修改,就能够很好的减少应用服务器的压力和数据库连接资源的竞争。相比原来的直接访问WEB应用的动态页面,WEB服务器的高峰期的cpu使用率由原来的100%降到了60%。相关功能对数据库连接资源的竞争由原来的80%降到了0%,因为这时没有数据库连接。高并发环境下响应速度快。

Description

基于J2EE的WEB动态页面静态化解决方法
1、技术领域
本技术发明方案应用于基于J2EE的WEB应用,用于解决用户使用系统的性能要求。
2、背景技术
目前现有的WEB应用大部分都是采用动态页面,客户端访问时动态生成返回响应信息,当由于刚性原因,某些动态页面响应时间超长时,WEB应用就无法满足海量用户高并发和数据调用的性能要求。传统的动态页面访问数据库的操作太多,导致数据库连接竞争激励,所以响应缓慢,但数据库连接又不能开太多,否则数据库压力会很高。
3、发明内容
(1)发明目的:
本发明方案的目的是解决传统基于J2EE的WEB应用存在的,由于全部动态页面数据都是实时生成导致的性能问题,针对海量用户,高并发和数据调用的性能需求,提出一种基于J2EE的WEB动态页面静态化的解决方案,减少数据库资源的竞争和对数据库读的压力。
(2)技术方案:
本发明技术方案是基于由数据库服务器组、应用服务器组、客户端三部分组成系统。
一种基于J2EE的WEB动态页面静态化解决方法,步骤包括:
1)由静态页面生成应用模拟客户端请求,发送请求到原有的动态页面例如JSP,并将响应对象里的输出流指向到本地文件;
2)WEB应用读取由“静态页面生成应用”生成的静态页面。
静态页面生成好以后,用户对WEB应用(如移动的BOSS系统、电信的营销支撑系统)的动态页面地址的访问就会重定向响应的静态页面。
具体来说,首先,从配置文件config.xml中读取生成静态页面的相关参数;
例如:
    config.xml:
<pages>
   <page>
      <name>all-home</name>
      <type>ALL</type>
      <url>/jsp/main/home.jsp</url>
      <parameters>
            <parameter>userID</parameter>
        </parameters>
    </page>
    <page>
        <name>part-data</name>
        <type>PART</type>
        <url>/jsp/main/home-data.jsp</url>
        <parameters>
            <parameter>userID</parameter>
            <parameter>dataID</parameter>
        </parameters>
    </page>
</pages>
上面的配置中,每一个page元素,表示一个需要静态化的页面;name元素,用来说明这个页面的主要用途;type元素用来描述这个是全页面静态化(ALL),还是部分页面静态化(PART),另外这个参数将决定,页面将来存储的位置;url标签就是动态页面所在的地址;parameters元素是一个集合,下面的parameter元素表示需要传入到url所指定的动态页面需要的参数。
然后,“静态页面生成应用”在实现javax.servlet.Filter接口的过滤器中发送请求到动态页面,动态页面将结果响应给静态页面生成应用的过滤器;当过滤器接收到动态页面响应时,将数据流指向到配置好的静态文件中,即将动态页面的处理结果输出到静态页面。
动态页面静态化的粒度可以通参数来灵活选择。
在config.xml中type元素用来描述这个是全页面静态化(ALL),还是部分页面静态化(PART),另外这个参数将决定,页面将来存储的位置。所述过滤器将从配置文件中读取type参数,并根据type参数,将文件流指向到不同的存储空间。比如,全页面静态化的文件放在/data/pages/all下,而部分页面静态化的文件放在/data/pages/parts下。
所述的静态化策略包括:
1)对每个需要静态化的动态页面,每天凌晨,在用户上班前生成好一套静态页面;
2)对个别需要静态化的动态页面,在策略1)的基础上,还支持客户手动更新,更新完毕后,重定向到新生成的静态页面。
上述的手动更新,举例来说,步骤如下:
首先在crontab中配置好启动时间,在程序启动后,Main.java先读取config.xml中的配置信息。Main.java发送请求到config.xml中配置的url地址。在url地址所在的web应用程序中,存在一个实现了javax.servlet.Filter接口的过滤器类,以下统称过滤器,在过滤器中,也会加载config.xml中的信息,并将response的输出流改成指向到本地文件的文件流,静态页面文件存储的位置由config.xml中的type属性来判断,从而决定是放在/data/pages/all下还是/data/pages/parts下。这样,当处理完请求以后,就会将结果输出到指定的文件中。
然后,当客户访问这个原有应用的某个配置好的地址时,就将访问某个生成好的静态页面。当需要更新页面上的数据时,点击页面上的“刷新数据”按钮,将访问动态页面的url地址(以下与上一步基本相同)再由过滤器将response的输出流指向到web服务器的指定文件中,当动态页面将数据从数据库中捞出来,并生成好相应留以后,就会把输出写到指定的文件中。当文件生成好以后,过滤器再将请求重定向到新的静态页面,再有服务器响应到客户端,这时客户就可以访问新的页面(数据)了。
本方法的有益效果是,采用基于J2EE的动态页面静态化解决方案,程序上不做修改,就能够很好的减少应用服务器的压力和数据库连接资源的竞争。相比原来的直接访问WEB应用的动态页面,WEB服务器的高峰期的cpu使用率由原来的100%降到了60%。相关功能对数据库连接资源的竞争由原来的80%降到了0%,因为这时没有数据库连接。高并发环境下响应速度快。
4、附图说明
图1.系统架构图;
图2.动态页面静态化实施流程图。
5、具体实施方式
下面结合附图和具体实施方式对本发明进一步说明。
本方法是基于由数据库服务器组、应用服务器组、客户端三部分组成的系统。
系统架构
系统架构示意图如图1所示;
1.数据库服务器组:
应用服务器组上数据库实例,如ORACLE等。
2.应用服务器组:
应用服务器组上部署WEB中间件,如WEBLOGIC等,WEB应用和生成静态页面应用。
3.客户端:
客户端使用WEB浏览器访问系统。
静态页面生成策略
策略一:
对每个需要静态化的动态页面,每天凌晨,在用户上班前生成好一套静态页面。
策略二:
对个别需要静态化的动态页面,在策略一的基础上,还支持客户手动更新,更新完毕后,重定向到新生成的静态页面。
动态页面生成静态页面的方法:1、模拟客户端请求,发送请求到原来的动态页面例如JSP,并将响应对象里的输出流指向到本地文件。2、WEB应用读取由静态页面生成应用生成的静态页面。
首先,读取配置文件获取生成静态页面的相关参数;然后,静态页面生成应用,在过滤器中发送请求到动态页面,动态页面将结果响应给静态页面生成应用的过滤器;当过滤器接收到动态页面响应时,将数据流指向到配置好的静态文件中,即将动态页面的处理结果输出到静态页面。静态页面生成好以后,用户对WEB应用的动态页面地址的访问就会重定向响应的静态页面。
本例中,动态页面静态化具体的实施步骤:
自主实现部分:通过过滤器截获请求,然后重定向数据流到指点文件。实现核心细节:
RequestDispatcher rd=sc.getRequestDispatcher(url);
final ByteArrayOutputStream os=new ByteArrayOutputStream();
final ServletOutputStream stream=new ServletOutputStream(){
    public void write(byte[]data,int offset,int length){
        os.write(data,offset,length);
    }
    public void write(int b)throws IOException{
        os.write(b);
    }
};
final PrintWriter pw=new PrintWriter(new OutputStreamWriter(os));
HttpServletResponseWrapper rep=new HttpServletResponseWrapper(response){
    public ServletOutputStream getOutputStream(){
        return stream;
    }
    public PrintWriter getWriter(){
        return pw;
    }
};
response.setHeader(″Content-Type″,″text/html;charset=gbk″);
response.setContentType(″text/html;charset=gbk″);
rd.include(request,rep);
pw.flush();
FileOutputStream fos=new FileOutputStream(fileName);
  os.writeTo(fos);
fos.close();
在应用服务器组上部署静态页面生成应用;先部署WEB应用,再部署静态页面生成应用,让后配置NFS映射。
对于不同的动态页面配置不同的静态化策略;由于两种策略的不动点就是是否支持手工刷新,那么就对需要手工刷新的页面上加上主动刷新按钮即可。采取策略的依据主要是根据用户的需求。其次,就是将对应的动态页面生成静态页面对系统资源的占用情况。
针对动态化对象选择静态化页面的粒度;当动态页面中只有部分数据响应慢时,就对这块数据静态化,粒度可以定位单个或者部分数据。当大部分数据响应比较慢时,可以对整个页面静态化,粒度可以定位这个页面。

Claims (4)

1.一种基于J2EE的WEB动态页面静态化解决方法,其特征是步骤包括:
1)由静态页面生成应用模拟客户端请求,发送请求到原有的动态页面,并将响应对象里的输出流指向到本地文件;
2)WEB应用读取由“静态页面生成应用”生成的静态页面;
静态页面生成好以后,用户对WEB应用的动态页面地址的访问就会重定向响应的静态页面。
2.根据权利要求1所述的基于J2EE的WEB动态页面静态化解决方法,其特征是
首先,读取配置文件获取生成静态页面的相关参数;
然后,然后静态页面生成应用在过滤器中发送请求到动态页面,动态页面将结果响应给“静态页面生成应用”的过滤器;当过滤器接收到动态页面响应时,将数据流指向到配置好的静态文件中,即将动态页面的处理结果输出到静态页面。
3.根据权利要求1所述的基于J2EE的WEB动态页面静态化解决方法,其特征是通参数来灵活选择动态页面静态化的粒度。
4.根据权利要求1所述的基于J2EE的WEB动态页面静态化解决方法,其特征是所述静态页面的生成策略即静态化的策略包括:
a)对每个需要静态化的动态页面,每天凌晨,在用户上班前生成好一套静态页面;
b)对个别需要静态化的动态页面,在策略b)的基础上,还支持客户手动更新,更新完毕后,重定向到新生成的静态页面;
手动更新方法,步骤如下:
1)首先配置好启动时间,程序启动后,先读取配置文件中的配置信息:
先发送请求到配置文件中配置的url地址;在url地址所在的web应用程序中,存在实现了javax.servlet.Filter接口的过滤器类,在该过滤器中,也会加载配置文件中的信息,并将response的输出流改成指向到本地文件的文件流,静态页面存储的位置由配置文件来判断,当处理完请求以后,就会将结果输出到指定的文件中;
2)然后,当这个原有应用的某个配置好的地址被访问时,就将访问生成好的静态页面;当需要更新页面上的数据时,则刷新数据来访问到动态页面的url地址,方法与步骤1)相同;再由过滤器将response的输出流指向到web服务器的指定文件中,当动态页面将数据从数据库中捞出来,并生成好相应留以后,就会把输出写到指定的文件中;当文件生成好以后,过滤器再将请求重定向到新的静态页面,再由服务器响应到客户端,这时就可以访问新的页面/数据了。
CN 201010105969 2010-02-03 2010-02-03 基于j2ee的web动态页面静态化解决方法 Expired - Fee Related CN101789012B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010105969 CN101789012B (zh) 2010-02-03 2010-02-03 基于j2ee的web动态页面静态化解决方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010105969 CN101789012B (zh) 2010-02-03 2010-02-03 基于j2ee的web动态页面静态化解决方法

Publications (2)

Publication Number Publication Date
CN101789012A true CN101789012A (zh) 2010-07-28
CN101789012B CN101789012B (zh) 2013-03-20

Family

ID=42532226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010105969 Expired - Fee Related CN101789012B (zh) 2010-02-03 2010-02-03 基于j2ee的web动态页面静态化解决方法

Country Status (1)

Country Link
CN (1) CN101789012B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411571A (zh) * 2010-09-21 2012-04-11 上海众融信息技术有限公司 一种动态网页的静态化信息处理方法及装置
CN102654882A (zh) * 2011-03-02 2012-09-05 北京千橡网景科技发展有限公司 用于加载页面的方法和设备
CN105094779A (zh) * 2014-05-14 2015-11-25 北大方正集团有限公司 一种页面设计方法
CN106372228A (zh) * 2016-09-08 2017-02-01 福建中金在线信息科技有限公司 一种移动端生成静态页的方法以及系统
CN107357897A (zh) * 2017-07-13 2017-11-17 郑州云海信息技术有限公司 一种实现用户访问控制的方法、装置及计算机存储介质
CN107861771A (zh) * 2017-11-02 2018-03-30 深圳市雷鸟信息科技有限公司 加载弹出页面数据的方法、装置及计算机可读存储介质
CN105391789B (zh) * 2015-11-26 2018-10-23 南京莱斯信息技术股份有限公司 一种基于jsp模板的动态服务实现方法
CN109032797A (zh) * 2018-07-18 2018-12-18 上海恺英网络科技有限公司 用于提供网页访问的方法及设备
CN110516185A (zh) * 2019-08-09 2019-11-29 济南浪潮数据技术有限公司 动态网站的处理方法及装置
CN112398736A (zh) * 2020-10-20 2021-02-23 南京欣网互联网络科技有限公司 一种根据业务参数实现服务路由的动态选择的方法及系统
CN112667950A (zh) * 2021-01-07 2021-04-16 青海绿能数据有限公司 一种动态页面静态化系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US20030140100A1 (en) * 2002-01-18 2003-07-24 Sam Pullara System and method for URL response caching and filtering in servlets and application servers
CN101183395B (zh) * 2007-12-25 2011-12-28 北京中企开源信息技术有限公司 一种实现动态页面静态化的方法和系统
CN101510220A (zh) * 2009-03-27 2009-08-19 阿里巴巴集团控股有限公司 一种向用户端推送浮出页面的方法、装置及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411571A (zh) * 2010-09-21 2012-04-11 上海众融信息技术有限公司 一种动态网页的静态化信息处理方法及装置
CN102654882A (zh) * 2011-03-02 2012-09-05 北京千橡网景科技发展有限公司 用于加载页面的方法和设备
CN105094779A (zh) * 2014-05-14 2015-11-25 北大方正集团有限公司 一种页面设计方法
CN105391789B (zh) * 2015-11-26 2018-10-23 南京莱斯信息技术股份有限公司 一种基于jsp模板的动态服务实现方法
CN106372228A (zh) * 2016-09-08 2017-02-01 福建中金在线信息科技有限公司 一种移动端生成静态页的方法以及系统
CN107357897A (zh) * 2017-07-13 2017-11-17 郑州云海信息技术有限公司 一种实现用户访问控制的方法、装置及计算机存储介质
CN107861771A (zh) * 2017-11-02 2018-03-30 深圳市雷鸟信息科技有限公司 加载弹出页面数据的方法、装置及计算机可读存储介质
CN107861771B (zh) * 2017-11-02 2022-05-06 深圳市雷鸟网络传媒有限公司 加载弹出页面数据的方法、装置及计算机可读存储介质
CN109032797A (zh) * 2018-07-18 2018-12-18 上海恺英网络科技有限公司 用于提供网页访问的方法及设备
CN110516185A (zh) * 2019-08-09 2019-11-29 济南浪潮数据技术有限公司 动态网站的处理方法及装置
CN110516185B (zh) * 2019-08-09 2022-04-22 济南浪潮数据技术有限公司 动态网站的处理方法及装置
CN112398736A (zh) * 2020-10-20 2021-02-23 南京欣网互联网络科技有限公司 一种根据业务参数实现服务路由的动态选择的方法及系统
CN112398736B (zh) * 2020-10-20 2023-02-21 南京欣网互联网络科技有限公司 一种根据业务参数实现服务路由的动态选择的方法及系统
CN112667950A (zh) * 2021-01-07 2021-04-16 青海绿能数据有限公司 一种动态页面静态化系统

Also Published As

Publication number Publication date
CN101789012B (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN101789012B (zh) 基于j2ee的web动态页面静态化解决方法
AU2008206688B9 (en) Method and system for creating IT-oriented server-based web applications
US20060020883A1 (en) Web page personalization
US20020104080A1 (en) Server based extraction, transfer, storage and processing of remote settings, files and data
Lee et al. A framework for composing SOAP, non-SOAP and non-web services
US20030050995A1 (en) Method and system for delivering dynamic information in a network
US20070261049A1 (en) Techniques to perform gradual upgrades
CN101106578B (zh) 一种更换界面主题的方法和系统
US20090100321A1 (en) Universal contextual actions menu across windows applications
US6964051B1 (en) Enabling and disabling remote features dynamically in software applications
CN101378400A (zh) 实现桌面应用和Web应用聚合的方法、服务器和系统
WO2003024051A2 (en) Method and system for delivering dynamic information in a network
CN101276271A (zh) 一种面向切面编程的拦截器系统及方法
JP2008547117A (ja) コンテンツ配信プラットフォーム
CN110764752B (zh) 实现Restful服务图形化服务编排的系统及其方法
TW200923684A (en) A system for common compiler service based on the open service gateway initiative framework and the method thereof
CN103390018A (zh) 一种基于SDD的Web服务数据建模与搜索方法
CN1805431B (zh) 远程门户组件的Web服务处理系统
CN101277221A (zh) 一种网管应用程序的部署及应用方法
Tanaka et al. Meme media for clipping and combining web resources
Vinoski Scripting JAX-WS [JavaScript]
CN100433002C (zh) 一种跨平台数据库复制配置方法
Liu et al. Toward easy delivery of device-oriented adaptive user interface on mobile devices
KR100801434B1 (ko) 이동식 저장장치 또는 로컬 저장장치를 이용하는 홈페이지운영 시스템 및 홈페이지 운영 방법
US20040193940A1 (en) WebDAV unit test framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130320

CF01 Termination of patent right due to non-payment of annual fee