(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf_第1页
(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf_第2页
(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf_第3页
(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf_第4页
(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机科学与技术专业论文)基于xml的web站点统计及分析系统.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 传统的网站只是在页面上使用计数器进行简单的访问者数量的统计。随着网 站运营规模的扩大,依靠这种简单的数量统计并不能真正对网站运营状况做以全 面的统计,难以为网站运营提供有意义的参考。在这种需求下,w e b 网站流量分 析系统应运而生,并迅速成为提高网站服务质量的可靠保证。目前,互联网上的 大部份流量都是w e b 流量,所以流量统计和流量分析适应了网站服务和投资评估 的迫切需求。 本文首先描述网站流量分析所应包含的指标体系,继而深入研究本监控和统 计系统的具体设计和实现。m v c 模式在当今w e b 开发中占据无可争议的绝对优 势,本文采用m v c 中最主流的s s h ( s t r u t s2 + s p r i n g + h i b e r n a t e ) 的框架,严格 按照w 曲分层的思想将代码分割为v i e w ,框架c o n t r o l l e r ,用户c o n t r o l l e r ( 用户 a c t i o n ) ,s e r v i c e 层和d a o 等层,有利于项目的二次开发和后期维护。 本系统使用x m l 作为报表数据的存储介质,并对写x m l 造成的1 0 压力进 行了分流,力图使文件操作造成的系统压力最小化,为w e b 开发提供一个较新的 思路;系统大量采用w e b 报表的形式展现数据,使用了基于j f r e e c h a r t 的c e w o l f 开源报表工具;项目中使用a j a x 技术异步提交数据,结合用户的操作习惯,尽可 能分流生成报表产生的服务器端压力;配置了详细的访问日志和用户日志。 基于x m l 的w 曲站点统计及分析系统在功能上强化了对用户行为的统计和 分析,有利于对网站管理者、开发者根据目标客户使用网站的实际情况指定网站 的经营战略,调整网站的运营架构,进而对网站整体进行更有意义的改进。 关键词:流量监控,流量统计,s s h ,x m l ,a j a x ,日志 分类号:t p 3 1 1 a bs t r a c t a b s t r a c t : t r a n s i t i o n a lw e b s i t eo n l yu s eo fas i m p l ec o u n t e rt ot h es t a t i s t i c s w i t ht h e e x p a n s i o no ft h ew e b s i t e ss c a l e ,t h en u m b e rd e p e n d s0 1 1t h i ss i m p l es t a t i s t i c sc a l ln o t r e a l l yd ot h es i t u a t i o no f t h ew e b s i t eo w n e ri nac o m p r e h e n s i v ea s s e s s m e n t ,i tw o u l db e d i f f i c u l tt ow e b s i t eo w n e rt op r o v i d em e a n i n g f u li n f o r m a t i o n u n d e rs u c had e m a n d , w e b s i t ev i s i ta n dt h r o u g h o u ta n a l y s i s s y s t e ma p p e a r s t h e ni tb e c o m e sar e l i a b l e g u a r a n t e ef o ri m p r o v i n gs i t es e r v i c eq u a l i t yr a p i d l y t h i sa r t i c l eb e g i n sw i t ht h ec r i t e r i o ns y s t e mo fs i t et h r o u g h p u ta n a l y s i s ,a n dt h e n s t u d i e st h ed e s i g no fm yw e b s i t ev i s i tm o n i t o r i n ga n ds t a t i s t i c ss y s t e m ,w i t hd e s c r i b i n g t h ei m p l e m e n tp r o c e s so fi t n o w a d a y st h em v cm o d ei st h em o s ta u t h o r i t a t i v e f r a m e w o r ki nw e bd e v e l o p m e n t ,m yp r o j e c td e p e n d so ns s h ( s t r u t s2 + s p r i n g + h i b e r n a t e ) f r a m e w o r k , o n em o s tp o p u l a rf r a m e w o r ko fm v c t h ec o d e i sa l s o p a r t i t i o n e di n t os t r u t sc o n t r o l l e r , u s e rc o n t r o l l e r ( b s e ra c t i o n ) ,s e r v i c el a y e ra n dd a o l a y e ra n ds oo na c c o r d i n gt o t h ep r i n c i p l eo fw e bm u l t i l a y e r , w h i c hi sh e l p f u lt o r e d e v e l o pa n dm a i n t e n a n c e t h i ss y s t e mt a k e sx m ld o c u m e n ta sd a t as t o r a g e ,a n dd i s p e r s et h es e r v e ri o b u r d e nc a u s i n gb yw r i t ex m ld o c u m e n t ;t h es y s t e mu s e sc e w o l f ( b a s e do nj f r e e c h a r t ) t og e n e r a t ed i a g r a m sw h i c hi sd i s p l a y e da sr e p o r tf o r m si nw e bp a g e ;t h i ss y s t e m a l s o m a k e su s eo fa j a xt oa s y n c h r o n o u ss u b m i td a t at os e r v e r , t od e c r e a s et h er e s p o n s et i m e , t h a tc o u l de n h a n c et h eu s e s e x p e r i e n c e ;ic o n f i g u r et h ew e bs e r v e rs o f t w a r es ot h a ti t w i l lw r i t ed e t a i l e da c c e s sl o ga n du s e rl o g t h ex m l b a s e dw e b s i t ev i s i tm o n i t o r i n ga n ds t a t i s t i c ss y s t e mf u n c t i o n a l l y e n h a n c e st h es t a t i s t i c so nu s e rb e h a v i o ra n da n a l y s i s ,t os i t em a n a g e r s ,d e v e l o p e r s , a c c o r d i n gt ot a r g e tc u s t o m e r st o u s e rt h ea c t u a ls i t u a t i o ni nc o n s t i t u t i n gw e b s i t e b u s i n e s ss t r a t e g y , o p e r a t i n gs t r u c t u r ea d j u s t m e n t a sw e l l 嬲o t h e rm o r cm e a n i n g f u l w e b s i t ei m p r o v e m e n t k e y w o r d s :t h r o u g h p u tm o n i t o r i n g ,t h r o u g h p u ts t a t i s t i c s ,s s h ,x m l ,a j a x ,l o g c l a s s n o :t p 3 1 1 图表索引 图2 1m o d e ll 程序流程图8 图2 2m o d e l2 程序流程图9 图2 3s t r u t sl 流程图。1o 图2 4a j a xw e b 应用模型l6 图3 1 基于m v c 模式的总体结构图2 2 图3 2s t r u t s2 ,h i b e r n a t e 和s p r i n g 的角色划分。2 4 图3 3 s t r u t s2 组成结构图2 6 图3 4h i b e r n a t e 架构图。2 8 图3 5 整合了s p r i n g 的j 2 e e 框架3 0 图4 1s e r v l e t 结构图3 8 图5 i 总体数据页面5 8 图5 2 服务器环境页面5 9 图5 3 在线信息页面6 0 图5 4 在线信息详细记录页面6 2 图5 5 历史记录页面6 3 图5 6 资源访问统计页面6 3 图5 7 访问量统计报表6 6 图5 8 访问来源统计报表页面6 8 图5 9 浏览器统计报表页面6 8 图5 1 0 操作系统统计报表页面6 9 表2 1 d o m 4 j 主要接口1 8 表4 1j s p 内置对象4 0 表4 2j s p 作用域对象一4 0 表4 3h t t p s e r v l e t r e q u e s ta p i 41 表4 4 h t t p s e s s i o na p i 4 2 表4 5 s e r v l e t c o n t e x ta p i 4 3 表4 6 常用l i s t e n e r 接口4 4 表4 7 a p a c h ed o m 4 ja p i 4 9 表5 1c e w o l f 图形与数据源对象参照表6 5 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 丑哥、锣 i 签字日期:如d 7 7 年石月7 日 导师签名: 期:呼叶 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:撕、衫 i 签字同期: 上d o 尹年f 月 7 4 致谢 本论文的工作是在我的导师王移芝教授的悉心指导下完成的,王移芝教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢两年来 王移芝老师对我的关心和指导。 研究生期间,王移芝教授悉心指导我完成了实验室的科研工作,在学习上和 生活上都给予了我很大的关心和帮助,在此向王移芝老师表示衷心的谢意。论文 撰写期间,王老师对于我的论文提出了许多的宝贵意见,在此表示衷心的感谢。 在实验室工作及撰写论文期间,薛喜平、牛晓菲等同学对我论文中的研究工 作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学业。 1 引言 流量分析是从用户使用的角度,掌握用户的实际使用情况从而对一个网站的运 营状况进行分析的一项重要手段,它对网站的内容评价、实施评价、运行状况评 价和服务质量评价具有重要的意义。流量分析不仅能够给网站的建设者提供参考, 也能够给经营决策者提供分析报告,进而更好的进行网站的营销工作。 本文论述了基于x m l 的站点统计及分析系统的设计和实现,为中小型网站设 计了一种简便易行的访问统计方案。 1 1网站访问统计的发展 在i n t e m e t 技术初期,网站管理还处于起步阶段,网站管理员用来统计网站流 量的工具通常只是一个简单的计数器;随着网络信息资源的急剧增长,电子商务 以及各种网络信息服务迅速兴起,原有的网络信息处理与组织技术无法赶上日新 月异的发展趋势,人们越来越多地关注如何开发和利用这些资源,网站开始有了 反馈和统计的需求。 管理者们开始发现,分析网站流量是获得客户资料的一个有效渠道,可以从中 得到各种有用的统计数据。管理者可据此得知自己网站的受欢迎程度,以及哪些 栏目办得最成功等基本信息。而公司网站的管理者更关心消费者们来自何方、自 己的哪些产品最受欢迎等,从而改善公司的营销战略。在这种需求下,传统的那 种简单依靠计数器来统计网站访问量的方法已经远远不能满足管理者们的要求, 迫切需要一种能够统计分析各项信息的网站流量管理分析工具,网站流量分析系 统就是在这种趋势下应运而生的,并迅速成为网络信息检索、信息服务领域的热 点之一。 随着计算机网络技术的发展,大部分网站访问流量统计方法已经转变为对w e b 服务器访问日志进行分析和使用嵌入式脚本对网站访问情况进行实时监控的方 式。传统的网站访问数量统计分析只是采用计数器的方式对访问者进行数量上的 统计,并不能针对访问者行为进行跟踪和记录,实际应用的意义不大。而且,由 于网络环境复杂性的存在,致使计数器统计方式统计的数据缺乏准确性,在一定 程度上无法j 下确的反映网站的实际运营状况。为解决问题,大部分网站都采用了 同志分析和脚本嵌入分析的方法对网站访问流量和实际用户行为进行统计分析。 这两种统计分析方式对于网站经营者而言,可以对大部分有意义的用户访问数据 库进行获取、统计和分析工作,从而对网络营销战略的制定起到积极的推动作用。 1 2流量分析的意义 为了把一个网站建设得更好,系统管理员需要知道在一段时间内有多少人访 问了网站,来自哪里,对哪些栏目和服务感兴趣,经常浏览哪些内容等。流量分 析系统作为网站的分析器,它对网站信息、访问流量等做全方位的统计和分析, 以便准确地了解网站的被访问情况,为改进网站的建设提供帮助。流量统计可以 向网站提供页面访问计数、页面访问排行和访问分析服务,它不仅可以针对整个 站点,而且可以对任意页面的访问流量进行分类、分时段的统计分析,并向网站 管理者提供完整的综合报告,使他们对自己网站的整体运作状况有一个清楚的认 识,可以随时了解网站乃至某个页面的流量和受欢迎程度【l 】。 网站访问流量分析方法还可以为网站的管理者和开发者提供有意义的用户行 为信息,以便对网站的逻辑结构、服务器负载、网站运行状况等具体情况进行更 具有针对性的改进。 浏览者的访问信息中,有许多信息对网站管理者们都是很有价值的。例如, 从源i p 地址可以推断出访问者大致来自哪个地区、省份或是国家;访问最频繁的 页面暗示着访问者们最青睐的信息、产品所在;按时间段排序的访问流量统计则 可以推断出企业产品销售的淡旺季;而当发现错误代码4 0 4 ( 文件找不到) 出现比 例过高时,则意味着网站上存在过多过期或错误的链接,需要更新了。 对于生成的统计报告,还可转换成各种图表的形式,以便管理者们可以更加 清晰明了地知道网络流量的当前状况信息;按任意时段可以了解网站乃至任意页 面的流量动向和受欢迎程度;访问者的来源根据源i p 追溯,对于国内可以精确到 某个省市甚至更具体的地址,对于国外可以精确到来源于哪个国家。网站管理者 尤其是企业销售网站的管理者,凭此可以知道哪些地区的人对哪些栏目感兴趣, 从而有的放矢地做出广告投放等相应市场调整策略。 1 3 流量分析的对象和指标 网站的评价指标体系可以分为两大方面:一是用户对网站的直接评价,这个 被称作感性评价;二是通过定量的数据分析得出的统计结果,也叫做理性评价。 这两种评价方式应该有机结合,互相弥补对方的缺点,发挥本身的特长,才能真 正得出有利于网站发展的客观评价结果。在定量分析的方法中,对访问者流量的 采集和分析又是最常用的手段。 进行流量分析的数据指标有很多,最重要的有【9 】: ( 1 ) 访问量:访问的用户数,2 0 分钟内重复的访问不计入访问量。 ( 2 ) 独立访问者数量:该项指标描述了网站访问者的总体情况,指在一定统计 周期内访问网站的访问者数量( 例如每天、每月) ,每一个固定的访问者只代表一 个唯一的用户,与访问次数无关。独立访问者越多,说明网络营销的效果卓有成 效,是网站评价中最有说服力的评价标准之一。 ( 3 ) 页面浏览数量:在一定的统计周期内所有访问者浏览的页面数量。 ( 4 ) 每个用户页面访问数量:指在一定时间内全部页面浏览数量与该时间内所 有访问者数量之比,即一个用户浏览的网页数量。这一指标说明了访问者对网站 内容或者产品信息感兴趣的程度,也就是常说的网站“粘性”。 ( 5 ) 访问者的停留时间:包括在页面的停留时间和在网站的停留时间,该指标 能够反映出用户对网站中哪些页面的内容感兴趣,能够帮助进一步对网站进行结 构上、内容上的优化。 ( 6 ) 用户地理方位:根据用户的i p 地址,再配合m 数据库得到网站访问者的 地理方位。 ( 7 ) 用户入站方式( 直接、搜索) :该项数据可以确定出用户进站的方式,帮 助网站营销人员进一步优化网站广告投放方式和商业运作方式等,提高网站推广 的效率。 ( 8 ) 浏览器信息等:还可根据管理者的特殊需要灵活选择其它额外信息的统 计,如访问者使用的浏览器和操作系统的类型等。 1 4流量分析的模式和特点 分析系统的实现大体可以分为两步:第一步是通过某种途径获得网站访问的 相关记录,一条基本的记录包括访问者的源i p 地址、访问时间、请求的u r l 等; 第二步则运用现有手段、各种算法对网站记录进行详细的分析和统计。 1 4 1流量分析模式的分类 目前,流量分析的实现大体可以分成以下三种模式【l o 】: ( 1 ) 通过监听网络数据包获得网站访问记录。这种方式第一步的实现是通过运 行一个网络嗅探器类型的程序,监听所有经过的数据包,截获到包之后进行分析, 根据服务器设定信息( 如目的i p 地址、目的端口等) 判断是否属于h t t p 信包, 若符合,则进一步分析。 从数据包可以提取出所需要的信息,如请求方式、请求资源、浏览器类型等, 形成一个记录插入已构建好的数据库中( 数据包的源i p 地址可以在第一步i p 层数 据分析中得到,而接收到数据包的时间可以作为访问时间) ,若不符合要求则抛弃。 第二步是按照网站管理者的要求,通过调用数据库的各种检索、排序等指令,对 相关的记录文进行分析、归类和统计,得到管理者们所关心的信息。这两部分程 序可以是一个整体,但分别工作,互不干扰。当然,要在这种模式下进行流量分 析,分析程序必须运行在w e b 服务器上或是所有访问w e b 服务器的流量都必须经 过的一台主机上。 ( 2 ) 通过分析w e b 程序自动生成的日志文件获得访问记录。目前使用最多的 w e b 程序如i i s ,a p a c h e ,w e b s p h e r e ,w e b l o g i c 等服务器软件,在默认的安装时 都会配置成自动生成服务同志文件的运行模式,这些日志文件通常都存储着分析 需要的一些信息。 因此,流量分析的第一步就可以通过分析这些日志文件的格式和所需信息, 从而获得网站访问记录;第二步就是设计合适、快速的算法,对这些记录进行检 索、排序和统计,最终得到所需数据和分析结果。 ( 3 ) 通过给网站页面添加统计脚本程序获得访问记录。这种方式是利用脚本文 件编程获得当前访问者的各种信息,如j s p 脚本的内置r e q u e s t 对象就存储了当前 访问对象的各种信息,编写一个脚本,把获得的各种有效信息作为一个记录存入 数据库,如访问者的i p 地址和所用的浏览器类型等。给网站的每个文件添加一段 这样的脚本,就可以获得整个网站流量的统计数据;然后可以直接用脚本程序访 问数据库,进行数据分析统计,也可以另外编写程序实现对数据库的操作。 1 4 2流量分析模式的比较 这三种获取模式各有利到i o 】: ( 1 ) 从分析程序安装的灵活性上看,第一种模式的缺点在于程序安装灵活度较 小,由于是采用监听网络数据流的方法,因此程序要求运行在外部网络和w e b 服 务器之间的某台主机或是w e b 服务器本身,这样才能保证记录到所有网站的访问 流量;第二种模式就灵活得多了,分析程序可以安装在任何一台主机上,只要给 它提供w e b 服务端日志即可;而第三种模式最为麻烦,需要给网站的所有文件添 加脚本语句,但可以改进,把访问记录的脚本专门写成一个文件,只要在网站每 个文件中添加一个引用该脚本文件的链接就可以了。 ( 2 ) 从对网站性能的影响上看,第一种模式下的数据包记录程序运行在w e b 服 务器上或是服务器前端设备上,必然会影响到服务器的性能,如降低请求响应速 度等,可以考虑通过端口镜像减少对服务器性能的降低;第二种模式由于分析程 序与服务器运行完全独立的原因,根本不用考虑是否会降低服务器性能的问题; 4 而第三种模式由于每个网站页面被访问时都要额外有一个生成记录插入数据库的 过程,网站性能不可避免地要有所降低,但影响不会很大。 ( 3 ) 从分析要求的灵活性考虑,第二种模式能够分析的信息只能是日志文件中 所含有的信息,分析的范围比较狭小;第三种模式鉴于脚本程序功能强大,可以 获得的信息量比第二种模式多一些,但也只限于脚本程序所能提供的信息;而第 一种模式则给出了网站管理者们更多的选择,可以灵活地定制所需要分析的信息, 从而决定从符合要求的数据包中抽取哪些内容,如分析日志无法得到的操作系统、 浏览器类型、h t t p 版本和请求参数等。特别是需要获得一些只能从分析数据包得 到而又相对重要的信息时,第一种模式是唯一的解决方案。例如,获得网站对资 源请求的响应时间是分析网站性能的一个重要参数,若平均响应时间过长则意味 着网站性能有待提高,否则会失去许多耐心有限的客户。通过第一种模式分析流 经的数据包由请求包到达时间与回应包发送时间之间的差值,可得相应资源的响 应时间,这种分析是第二、第三种模式没有办法进行的。 ( 4 ) 从分析速度上考虑,第一和第三种模式下,记录由于是存储在特定的数据 库中,对这些记录的分析统计可以直接使用数据库的s q l 命令,因此效率较高, 花费时间少。第二种方式通常都不借助数据库,因此对从日志中提取的记录信息 进行分析一般是采用自己设计的算法。一般来说,当数据量很大时,这种方式花 费的时间要比第一种方式多,但可以通过设计合适、先进的算法来提高分析速度。 第二种模式对网站性能无影响、程序安装灵活,目前是应用最多的一种网站 流量分析模式。至于分析信息受限的缺点,可以通过定制日志文件格式来弥补, 如i l s 和a p a c h e 都提供了用户自己定制服务日志的方式,网站管理者可以根据需 要定制同志的格式,使其可以包含所需信息,当然,可定制格式必须是服务器程 序所提供的。第一和第三种模式由于对网站性能有影响这是业务量巨大的商 业网站所不希望的,所以应用不广。其中第三种模式由于不需要额外的程序,只 要在原有网站文件中添加一些脚本,在网站文件不多的情况下实现较方便,因此 被一些规模较小的网站采用较多。 2 课题相关技术 2 1 j s p ( j a v as e r v e rp a g e s ) 技术 j s p 的全称是j a v as e r v e rp a g e s ,它是s u n 推出的一种动态网页技术标准。它 在传统的静态页面文件中加入j a v a 程序片段和j s p 标记,就构成了j s p 页面。j s p 是从s e r v l e t 技术发展而来的,j s p 是一种建立在s e r v l e t 规范提供的功能之上的动 态网页技术,j s p 文件在用户第一次请求时,会被编译成s e r v l e t ,然后由这个s e r v l e t 处理用户的请求,所以j s p 也可以看成是运行时的s e r v l e t 。 j s p 允许将j a v a 代码嵌入到结构化文档,如h t m l 或可扩展标记语言( x m l ) 中,这样就很容易地把显示代码作为标准的h t m l 代码来维护,并在代码编辑器 中屏蔽掉非技术性操作等。 j s p 技术的关键优点在于它允许对内容和逻辑有一个更好的隔离,因而能简化 开发和维护工作。j s p 和其他些动态网页技术有所不同,j s p 的运行方式可以简 单描述为:服务器在接收到客户端发来的一个j s p 页面请求时,首先由j s p 引擎 把j s p 代码转换成s e r v l e t 代码,这些s e r v l e t 代码是j a v a 代码的一种,然后由j s p 引擎调用服务器端的j a v a 编译器对s e r v l e t 代码进行编译,把它编译成字节码c l a s s 文件,再由j a v a 虚拟机执行此字节码文件,最后将执行结果以h t m l 格式返回给 客户端。 2 2s e r v l e t 技术 s e r v l e t 是一种独立于平台和协议的服务器端的j a v a 应用程序,用于生成动态 的w e b 页面。当w e b 浏览器或其他h t t p 客户程序发出请求时,s e r v l e t 担当h t t p 服务器上的数据库和应用程序之问的中间层。它提供了一种有效的机制,用于基 于服务器的业务逻辑和基于w e b 的客户端之间的交互,s e r v l e t 简单且需要很少的 资源。 s e r v l c t 最适用于处理简单直接的任务,如收集和检查w e b 页面上的输入区输 入内容的有效性。当完成初步检查后,就会把数据传给更适合的组件以立即执行 实际的任务。s e r v l e t 是运行在由w e b 服务器管理的s e r v l e t 容器中的,s e r v l e t 容器 管理s e r v l e t 生命周期,并通过诸如超文本传输协议( h t t p ) 之类的协议,把w e b 客户端的请求解释成基于对象的请求。同样,该容器还会解释s e r v l e t 响应,并把 6 响应对象映射到合适的w e b 协议上。 在大部分情况下,用户s e r v l e t 继承自j a v a x s e r v l e t h t t p h t t p s e r v l e t 抽象类, h t t p s e r v l e t 常用的应用编程接口为: ( 1 ) i n i t 0 方法 在s e r v l e t 的生命期中,仅执行一次i n i t 0 方法,它是在服务器加载s e r v i a 时执 行的。可以配置服务器,以在启动服务器或客户机首次访问s e r v l e t 时装入s e r v l e t 。 但是无论有多少客户机访问s e r v i a ,都不会重复执行i n i t o 方法。 缺省的i n i t o 方法通常是符合要求的,但也可以用定制i n i t o 方法来覆盖它,典 型的是管理服务器端资源。 ( 2 ) s e r v i c e ( ) 方法 s e r v i c e ( ) 方法是s e r v l e t 的核心。每当一个客户请求一个h t t p s e r v l e t 对象,该 对象的s e r v i c e ( ) 方法就要被调用,而且传递给这个方法一个“请求 ( s e r v l e t r e q u e s t ) 对象和一个“响应( s e r v l e t r e s p o n s e ) 对象作为参数。在 h t t p s e r v l e t 中已存在s e r v i c e o 方法,缺省的服务功能是调用与h t t p 请求的方法相 应的d o ( d o g e l g d o p o s t ) 功能。例如,如果h r r p 的请求方法为g e t ,则缺省情况下 就调用d o g e t 0 ;如果h t t p 的请求方法为p o s t ,则缺省情况下会调用d o p o s ( ) 。 因此用户s e r v l e t 不必要覆盖h t t p s e r v l e t 的s e r v i c e ( ) 方法,只需覆盖相应的d o g e t 0 和d o p o s t o 方法就可以了。 s e r v l e t 的响应可以是下列几种类型: 一个输出流,浏览器根据它的内容类型( 如t e x t h t m l ) 进行解释。 一个h t t p 错误响应,重定向到另一个u r l 、s e r v l e t 、j s p 等。 ( 3 ) d o g e t 0 方法 当一个客户通过h t m l j s p 表单发出一个h t t p 的g e t 请求或直接请求一个 u r l 时,d o g e t 0 方法被调用。与g e t 请求相关的参数添加到u r l 的后面,并与 这个请求一起发送。当不会修改服务器端的数据时,应该使用d o g e t o 方法。 ( 4 ) d o p o s t 0 方法 当一个客户通过h t m l j s p 表单发出一个h 丌p 的p o s t 请求时,d o p o s t o 方 法被调用。与p o s t 请求相关的参数作为一个单独的h t t p 请求从浏览器发送到 服务器。当需要修改服务器端的数据时,应该使用d o p o s t o 方法。 ( 5 ) d e s t r o y ( ) 方法 d e s t r o y ( ) 方法仅执行一次,即在服务器停止且卸装s e r v l e t 时执行该方法,一 般默认的做法是将s e r v l e t 作为服务器进程的一部分来关闭。缺省的d e s t r o y ( 1 方法 通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如关闭数 据库连接。当服务器卸装s e r v l e t 时,将在所有s e r v i c e ( ) 方法调用完成后,或在指 7 定的时间间隔过后调用d e s t r o y ( ) 方法。一个s e r v l e t 在运行s e r d c e ( ) 方法时可能会 产生其它的线程,因此请确认在调用d e s t r o y ( ) 方法时,这些线程已终止或完成。 2 3w e b 架构与s t r u t s 2 2 3 1w e b 架构m o d e l1 m o d e l2 开发w e b 应用时首先提到的一个概念是m o d e l1 m o d e l2 ,下面分别介绍一下 这两种模式。 ( 1 ) m o d e ll 模式下,整个w e b 应用几乎全部由j s p 页面组成,j s p 页面接收 处理客户端请求,对请求处理后直接做出响应。用少量的j a v a b e a n 来处理数据库 连接、数据库访问等操作。其模式的实现比较简单,适用于快速开发小规模项目。 但从工程化的角度看,它的局限性非常明显:j s p 页面身兼v i e w 和c o n t r o l l e r 两 种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增 加了应用的扩展性和维护的难度。 图2 1 描述了m o d e l1 的程序流程: 图2 1m o d e ll 程序流程图 对于非常小型的w e b 站点,如果后期的更新、维护工作不是特别大,可以使 用m o d e l1 的模型来开发应用,而不是使用m o d e l2 的模式。虽然m o d e l2 提供了 更好的可扩展性及可维护性,但增加了前期的开发成本。从某种程度上讲,m o d e l 2 为了降低系统后期维护的复杂度,去而导致了前期开发的更高复杂度。 ( 2 ) m o d e l2 已经是基于m v c 架构的设计模式 在m o d e l2 架构中,s e r v l e t 作为前端控制器,负责接收客户端发送的请求, 在s e r v l e t 中只包含控制逻辑和简单的前端处理;然后,调用后端j a v a b e a n 来完成 实际的逻辑处理;最后,转发到相应的j s p 页面处理显示逻辑。图2 2 显示了m o d e l 2 的程序流程: 图2 2m o d e l 2 程序流程图 如图2 2 所示,m o d e l2 下j s p 不再承担控制器的责任,它只是表现层角色, 仅仅用于将结果呈现给用户,j s p 页面的请求与s e r v l e t ( 控制器) 交互,而s e r v l e t 负责与后台的j a v a b e a n 通信。在m o d e l2 模式下,模型( m o d e l ) 由j a v a b e a n 充 当,视图( v i e w ) 由j s p 页面充当,而控制器( c o n t r o l l e r ) 则由s e r v l e t 充当。 2 3 2s t r u t s1 x 版本 s t r u t sl 是全世界第一个发布的m v c 框架,其核心控制器是a c t i o n s e r v l e t ( o r g a p a c h e s t r u t s a c t i o n a c t i o n s e r v l e t ) 类,它是被w e b 容器当做一个s e r v l e t 来加 载。整个w e b 应用是由客户端发出的请求驱动:当客户端向s e r v e r 发送请求时, 请求将被s t r u t s1 的核心控制器a c t i o n s e r v l e t 拦截,a c t i o n s e r v l e t 根据请求决定是 否需要调用业务逻辑控制器处理用户请求。 对于整个s t r u t sl 框架而言,控制器就是它的核心,s t r u t sl 的控制器由两个部 分组成:核心控制器和业务逻辑控制器【2 】。其中核心控制器就是a c t i o n s e r v l e t ,由 s t r u t s1 框架提供;业务逻辑控制就是用户自定义的a c t i o n ,由应用开发者提供。 从其作用的本质而言,业务逻辑控制器还是控制器的角色,属于控制器的一部分, 它只是负责调用模型来处理用户请求,当用户请求处理完成后,其处理结果通过 j s p 呈现给用户。 s t r u t s1 的核心配置文件是s t r u t s c o n f i g x m l ,对于大部分用户请求而言,都需 要得到服务器的处理。当用户发送一个需要得到服务器处理的请求时,该请求被 a c t i o n s e r v l e t 拦截到,a c t i o n s e r v l e t 将该请求转发给对应的业务逻辑控制器,业务 9 逻辑控制器调用模型来处理用户请求;如果用户请求只是希望得到某个u r l 资源, 则由a c t i o n s e r v l e t 将被请求的资源转发给用户。 s t r u t s1 x 版本的程序流程图可描述为: 2 3 3s t r u t s2 0 图2 3s t r u t sl 流程图 s t r u t s2 是在另一个非常著名的m v c 框架w e b w o r k 的基础上发展起来的,虽 然在名称上作为s t r u t s1 的延续,但它是却以w e b w o r k 为核心,在整体的高度上 甚至完全颠覆了s t r u t sl 的思想。准确的讲,s t r u t s2 为s t r u t s1 注入了大量w e b w o r k 的设计理念,并吸收了s t r u t sl 的部分优点。 所有的m v c 框架都是以控制器为核心的,s t r u t s2 的控制器由两部分组成: f i l t e r d i s p a t c h e l 和业务逻辑控制器a c t i o n 。实际上,s t r u t s2 应用中起作用的业务 控制器不是用户自定义的a c t i o n ,而是系统生成的a c t i o n 代理,但该代理以用户 定义的a c t i o n 为目标p j 。 因为s t r u t s2 使用了w e b w o r k 的设计核心,而不是使用s t r u t s1 的设计核心, 所以s t r u t s2 的体系与s t r u t sl 的体系差别非常大: ( 1 ) s t r u t s2 大量使用拦截器来处理用户请求,从而允许用户的业务逻辑与 s e r v l e t a p l 分离,从而更加的低耦合和易测试。s t r u t s2 放弃了s t r u t s1 的a c t i o n f o r m 组件,而将其融合在了a c t i o n 类中,s t r u t s 2 的a c t i o n 封装了页面对应的参数,这 些参数是由s t r u t s2 的拦截器机制负责赋值和维护的。 ( 2 ) 在a c t i o n 类方面:s t r u t sl 要求a c t i o n 类继承一个a c t i o n 抽象基类,s t m t s l 的一个普遍问题是使用抽象类编程而不是接口;s t r u t s2 的a c t i o n 类可以实现一个 a c t i o n 接口,可实现其他接口,甚至完全可以无需实现任何父接口,无需继承任 1 0 何s t r u t s2 基类,用户a c t i o n 类可以完全是一个p o j o ( 普通、传统的j a v a 对象) 。 s t r u t s 2 提供一个a c t i o n s u p p o r t 基类去实现常用的接口。a c t i o n 接口不是必须的, 任何有e x e c u t e 标识的p o j o 对象都可以用作s t r u t s 2 的a c t i o n 对象。这使得s t r u t2 使可选和定制的服务成为可能,更具有很好的复用性。 ( 3 ) 线程模式方面: s t r u t s1 的a c t i o n 是单例模式并且必须是线程安全的,因为仅有a c t i o n 的一个 实例来处理所有的请求。单例策略限制了s t r u t s la c t i o n 能作的事,并且要在开发 时特别小心。a c t i o n 资源必须是线程安全的或同步的。 s t r u t s2 的a c t i o n 对象为每一个请求产生一个实例,因此没有线程安全问题。 ( 4 ) s e r v l e t 依赖: s t r u t sl 的a c t i o n 依赖于s c r v l c ta p i ,因为当一个a c t i o n 被调用时 h t t p s e r v l e t r e q u e s t 和h t t p s e r v l e t r e s p o n s e 被传递给e x e c u t e 方法。 s t r u t s2 的a c t i o n 不依赖于容器,允许a c t i o n 脱离容器单独被测试。如果需要, s t r u t s 2a c t i o n 仍然可以访问初始的r e q u e s t 和r e s p o n s e 。但是,其他的元素减少或 者消除了直接访问h t t p s e r v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论