CN101789012A - 基于j2ee的web动态页面静态化解决方法 - Google Patents
基于j2ee的web动态页面静态化解决方法 Download PDFInfo
- 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
Links
- 230000003068 static effect Effects 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 9
- 230000003203 everyday effect Effects 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
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
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服务器的指定文件中,当动态页面将数据从数据库中捞出来,并生成好相应留以后,就会把输出写到指定的文件中;当文件生成好以后,过滤器再将请求重定向到新的静态页面,再由服务器响应到客户端,这时就可以访问新的页面/数据了。
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)
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)
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 | 阿里巴巴集团控股有限公司 | 一种向用户端推送浮出页面的方法、装置及系统 |
-
2010
- 2010-02-03 CN CN 201010105969 patent/CN101789012B/zh not_active Expired - Fee Related
Cited By (14)
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 |