专利名称::Web应用中实现页面插件化的方法和web服务器的制作方法
技术领域:
:本发明涉及网络
技术领域:
,尤其涉及WEB应用中实现页面插件化的方法和WEB服务器。
背景技术:
:近些年,随着Internet的爆炸性发展,基于Web的各种应用也得到了巨大的发展,随着Web技术在企业级应用领域的发展,基于Web的应用程序逐渐成为企业应用开发的首选。典型的Web应用程序通常基于3层架构。从后端到前端分别是数据访问层、业务逻辑层和界面表示层。其中,界面表示层通常是由服务端动态页面技术来实现,如JSP页面技术和ASP页面技术等。在比较复杂的Web应用中,模块与模块之间往往存在业务上的耦合,直观地表现在界面表示层的页面上就是,在一个页面中,存在着由各个模块贡献的界面元素,如一个菜单项、一个链接、一个内容面板等,由于一个页面本身包含的界面逻辑在开发期就已经确定了下来,这使得应用的开发者,没有办法,根据需要来定制页面中的界面逻辑包含的范围,并根据特定的需要,来方便的增加或者减少已经有页面中包含的界面元素。在现有的技术方案中,开发者会在开发期就确定了各个页面的内容,比如一个WEB应用程序包含三个模块,其中在系统内,开发者开发了一个首页面,这个首页面用来展示一个综合性的信息内容,信息内容中混合着三个模块的内容。目前通用的技术方案如下场景一进行全新开发时首先分别开发三个模块;然后开发首页面,在首页面中分别调用三个模块的程序接口,把接口返回的内容组成所需页面。场景二需要新增加一个模块时首先开发新的模块;然后修改首页面,在首页面中新增调用新模块的程序接口,把所有接口返回的内容组成本页面。场景三需要删除一个模块时修改首页面,在首页面中删掉原来调用该模块的程序代码,把剩余接口返回的内容组成本页面。从上面的三个应用开发过程常见的场景中,可以很清晰地看到,为了新增加或者减少一个模块,开发者需要频繁地修改首页面,而首页面是全局性的,为所有模块服务的一个页面,在修改中,稍有不慎,将对整个应用的运行造成影响。在当前的技术方案中,每块模块的变动都将影响整个应用。如上面的场景,首页面成为了耦合各个模块的问题滋生点之一。
发明内容本发明提供WEB应用中实现页面插件化的方法和WEB服务器,用于解决现有WEB应用中各模块在界面展示层相互耦合,难于扩展和组装的问题。—种WEB应用中实现页面插件化的方法,包括Web服务器接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。其中,生成所述扩展关系对应库包括扫描WEB应用程序的各功能模块的配置文件,并从所述配置文件中解析出扩展点与扩展实现的对应关系;当删除或添加WEB页面中的任一扩展实现时,确定所述扩展实现所对应的扩展点,并在所述扩展关系对应库中删除或添加所述扩展点与所述扩展实现的对应关系;在所述扩展实现对应的功能模块的配置文件中删除或添加所述扩展实现的相关信息。所述扩展点对应多个扩展实现,所述多个扩展实现的相关信息分别存储在不同功能模块的配置文件中。其中,所述扩展点在所述WEB页面文件以标签的形式呈现。所述扩展点包括多种类型,并且每种类型的扩展点对应多个相关属性。—种WEB应用中实现页面插件化的装置,包括解析模块,用于接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;页面组件获取模块,用于当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;页面生成模块,用于将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。本发明提供的方法和装置,应用扩展点和扩展实现将WEB页面中所需展现的内容灵活的组合在一起,在用户请求时才将各功能模块中扩展实现的内容插入WEB页面中,易于扩展和组装。图1为本发明实施例应用扩展点和扩展实现结合实现WEB页面的示意图2为本发明实施例一种WEB应用中实现页面插件化的方法的流程图3为本发明实施例一种WEB应用中实现页面插件化的装置的结构图。具体实施例方式本发明实施例提供一种WEB应用中实现页面插件化的方法,应用于网络
技术领域:
,该方法包括Web服务器接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。下面结合说明书附图对本发明的具体实施方式进行详细说明。在对本发明进行详细的说明之前,以下为本发明中应用到的相关名词的解释A、扩展点扩展点是存在于WEB页面文件上的"钩子",系统在全局扫描完所有的配置后,通过这个钩子,确定该扩展点对应的多个扩展实现(即在这个钩子上挂接了多少个"扩展实现,,),从而在运行时,把扩展实现的具体内容展示在这个扩展点所在位置。具体实现时,扩展点可以以自定义标签的形式出现在页面代码中,但并不局限于这一种方式,则扩展点也可称为扩展点标签,如下为在主页面中的一个扩展点标签的定义〈extpoint:contentid=〃foundation.mainPage.content〃/>上述扩展点标签表示这个扩展点是"cont.ent"类型的一个扩展点,它的ID标识是"foundation.mainPage.content,,。在被扩展页面中设置扩展点(该扩展点也可称之为扩展点声明)时,可以采用自定义标签的方式,也可以采用先封闭成界面组件再使用的方式,本发明不限定采用什么方式,这儿以JSP的自定义tag标签为例进行说明。JSP的自定义tag标签,是指用户定义的一种JSP标记。当一个含有自定义的tag标签的JSP页面被jsp引擎编译成Servlet时,tag标签被转化成了对一个称为tag处理类的对象进行的操作。于是当JSP页面被jsp引擎转化为Servlet后,实际上tag标签被转化成为了对tag处理类的操作。Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于WEB服务器(如Tomcat)中。JavaServlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务,即能提供服务,供用户通过浏览器对Web程序进行访问。另夕卜,根据WEB页面中包含的内容,该扩展点的类型也对应的包括多种扩展点的类型包括但不限于导航菜单、超链接、内容片断等。每种类型的扩展点有其自己所特有的一些属性,如导航菜单类型的扩展点属性包括但不限于名称、目标地址、菜单文字;而内容片断类型的扩展点属性包括但不限于名称、片断页面的路径等。扩展点的属性包括但不限于名称、类型、渲染顺序等。B、扩展实现与"扩展点"的概念对应的扩展实现,是指具体挂接在某个扩展点上的实现内容(实现内容是指扩展实现代表的内容,如果是一个"内容片断"类型的扩展,那么实现内容可能是"-一段文字",若是"菜单"类型的扩展,那么实现内容可能就是"一个菜单项"),以下内容为一个对应的扩展实现的定义〈extension:contentid=〃moduleD.content〃6extensionPoint='■'foundation.mainPage.content〃url=〃/content.,xhtml〃/>该扩展实现表示,模块D中存在一个ID标识是"moduleD.content"的扩展点实现,对应的扩展点是上面提到的"foundation.raainPage.content"对应的页面片断是'7content,xhtml',。上述扩展点和扩展实现,由系统在运行时组装在一起,用户通过浏览器访问主页面时,则可以看到上述扩展实现中所指定的"/content,xhtml"页面中的内容。根据上述扩展实现和扩展点的实现方式,则可以在所述"foundation.mainPage.content"下挂接多个扩展实现,这样,用户通过浏览器访问主页面时,则能看到所有扩展实现页面中的内容集合。利用上述方法提供的扩展点和扩展实现,生成如图1所示,一个TOB页面中同时包括内容A、内容B和内容C,具体的实现方式可以是在Web应用程序的主页面上创建了一个名称为"mainPage.headerline"且类型为"内容片断"的扩展点(此类型的扩展,可以将各子模块中扩展实现所指定的内容片断自动插入到主页面中,并在运行时组成一个完整的页面供用户访问);然后,模块A中编写了一个扩展实现,名称为"modu:l.eA.extension";模块B中编写了一个扩展实现,名称为"moduleB.extension";模块C中编写了一个扩展实现,名称为"moduleC.extension,,。这三个实现,分别在三个不同的模块中进行独立编写,物理上文件之间没有耦合。在三个模块的扩展点配置文件中,标识出扩展实现对应的扩展点为"mainPage.headerline",并指定内容片断的页面路径(内容片断也是一个页面,只不过不是完整的页面,而只是页面的部分内容)。因此,在逻辑上名称为"mainPage.headerline"的扩展点拥有三个扩展实现。在Web应用程序运行时,系统通过扩展点全局管理模块,扫描各子模块的扩展点配置文件后,发现名称为"mainPage.headerline"存在着三个扩展实现,于是将此对应关系保存在"扩展关系对应库"中,当主页面被访问时,页面解析引擎发现页面上存在一个名称为"mainPage.headerline"的扩展点标签,通过査找"扩展关系对应库",发现此扩展点在系统中存在着三个扩展实现,然后将每个扩展实现对应路径下的内容片断页面的内容插入到当前页面中,并向访问者返回一个完整的页面内容。扩展点定义不限制用哪种编程语言实现,本发明以JSP自定义tag标签这种实现方式为例进行说明,如在WEB页面中我们使用〈extpoint:contentid=〃foundation.mainPage.content〃/>这个自定义的tag标签,是指声明了一个content类型的扩展点,扩展点的id为"foundation.mainPage.content"。而对于扩展实现的定义,同样不限制用哪种编程语言实现,本发明以XMLSchema语言(XMLSchema是一种用来描述XML文档结构的语言)为例进行说明〈xsd:elementname="content〃〉〈xsd:complexType〉〈xsd:complexContent>〈xsd:extensionbase=〃beans:identifiedType"〉〈xsd:attributename=〃extensionPoint〃type=〃xsd:string〃use=〃required〃/〉〈xsd:attributename=〃url〃type=〃xsd:string〃use=〃required"/〉〈/xsd:extension〉〈/xsd:complexContent〉</xsd:complexType>xsd:element)面定义了content类型的扩展实现的属性,包括指明是l属性)、本扩展实现的具体页面(url属性)。如图2所示,本发明实施例提供一种WEB应用中实现页面插件化的方法,具体步骤:水扩展点的实现包括歩骤201,设置扩展关系对应库,该扩展关系对应库中包含扩展点与扩展点实现之间的对应关系;其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;其中生成该扩展关系对应库的具体实现方式可以是扫描WEB应用程序各功能模块的配置文件,并从所述配置文件中解析出的扩展点与扩展实现的对应关系;记录所述扩展点与扩展实现的对应关系,生成扩展关系对应库。在具体的应用中,需要记录扩展点与挂接的扩展实现的对应关系时,在具体的扩展关系对应库中记录的是扩展点标签与扩展实现的对应的关系。扩展关系对应库的具体形式可以如表1所示的形式<table>tableseeoriginaldocumentpage8</column></row><table>表1歩骤202,WEB服务器接收到用户终端发起的对WEB页面请求时,根据所述请求中的网址确定对应的WEB页面文件,并解析所述WEB页面文件;步骤203,当解析到所述WEB页面文件中的设置的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的所有扩展实现;在具体的实现中,如WEB页面文件和扩展关系对应库中扩展点的具体表现形式一般为扩展点标签,所以在解析WEB页面文件时,解析到的是扩展点对应的扩展点标签,在查找关系库以及关系库中存储扩展点与扩展实现的对应关系时,都是应用的扩展标签具体标示扩展点。步骤204,将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。另外,当需要删除或添加WEB页面中的任一扩展实现时,本发明实施例具体事项方式可以是当删除或添加WEB页面中的任一扩展实现时,确定所述扩展实现所对应的扩展点,并在所述扩展关系对应库中删除或添加所述扩展点与所述扩展实现的对应关系;在所述扩展实现对应的功能模块的配置文件中删除或添加所述扩展实现的相关信息。WEB应用程序包括多个功能模块,其中每个功能模块包含多个扩展实现,各功能模块的配置文件中记载了各扩展实现的实现内容。当需要修改WEB页面中的内容,即相当于删除或添加扩展实现时,则可直接从对应功能模块的配置文件中删除或添加相应扩展实现的实现内容。根据上述方法,用户请求具体的WEB页面时的实现方式可以是如图3所示,根据上述方法本发明实施例还提供一种WEB应用中实现页面插件化的装置,该装置包括解析模块301、页面组件获取模块302和页面生成模块303:解析模块301,接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;页面中的需要展现的内容是通过本发明实施例中提供的扩展点和扩展实现结合在一起生成的。页面组件获取模块302,用于当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;页面生成模块303,用于将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。另外,为了灵活的修改页面的内容,且不影响页面的整体运行,本发明装置还包括页面组件删增模块304,用于当删除或添加WEB页面中的任一扩展实现时,确定所述扩展实现所对应的扩展点,并在所述扩展关系对应库中删除或添加所述扩展点与所述扩展实现的对应关系,在所述扩展实现对应的功能模块的配置文件中删除或添加所述扩展实现的相关信息。进一步,本发明装置还包括扩展关系对应库生成模块305,该扩展关系对应库生成模块305,用于扫描WEB应用程序的各功能模块的配置文件,并从所述配置文件中解析出扩展点与扩展实现的对应关系;记录所述扩展点与扩展实现的对应关系,生成扩展关系对应库。其中,所述扩展点对应多个扩展实现,所述多个扩展实现的相关信息分别存储在不同功能模块的配置文件中。另外,本发明实施例提供的装置可以置于WEB服务器。应用本发明实施例提供的方法和装置,Web应用程序的开发者通过本方法,可以使Web应用程序组织灵活,结构清晰,并且支持模块级的组装,可以方便地在需要时,增加或删除一个新的模块,从而组装出一个新的应用程序,而这种改变,不需要改动其它模块或者全局性的程序文件,极大地降低了因为模块变动,而带来的整个系统的修改。应用本发明的提供的方法和装置可以让开发者在Web应用程序的开发中,先开发出各自独立的模块,开发时是相互不受影响的,在Web应用程序运行时,通过本发明提供的方法和装置,将各模块的内容动态地组装在一个页面上,供用户访问。通过这样的灵活处理,实现了分散开发,整合运行。将本来属于一个页面的各界面元素,物理上隔离在业务模块内部,互不影响,达到模块间界面逻辑解耦的目的,为Web应用程序的开发和维护提供极大的便利。本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。10权利要求一种WEB应用中实现页面插件化的方法,其特征在于,包括Web服务器接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。2.如权利要求1所述的方法,其特征在于,生成所述扩展关系对应库包括扫描WEB应用程序的各功能模块的配置文件,并从所述配置文件中解析出扩展点与扩展实现的对应关系;记录所述扩展点与扩展实现的对应关系,生成扩展关系对应库。3.如权利要求1所述的方法,其特征在于,还包括当删除或添加WEB页面中的任一扩展实现时,确定所述扩展实现所对应的扩展点,并在所述扩展关系对应库中删除或添加所述扩展点与所述扩展实现的对应关系;在所述扩展实现对应的功能模块的配置文件中删除或添加所述扩展实现的相关信息。4.如权利要求13任一所述的方法,其特征在于,所述扩展点对应多个扩展实现,所述多个扩展实现的相关信息分别存储在不同功能模块的配置文件中。5.如权利要求1所述的方法,其特征在于,所述扩展点在所述WEB页面文件以标签的形式呈现。6.如权利要求1所述的方法,其特征在于,所述扩展点包括多种类型,并且每种类型的扩展点对应多个相关属性。7.—种WEB应用中实现页面插件化的装置,其特征在于,包括解析模块,用于接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;页面组件获取模块,用于当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;页面生成模块,用于将所述扩展点对应的扩展实现的实现内容插入所述WE:B页面文件,并将所述WEB页面文件运行后的结果返回用户终端。8.如权利要求7所述的装置,其特征在于,该装置还包括页面组件删增模块,用于当删除或添加WEB页面中的任一扩展实现时,确定所述扩展实现所对应的扩展点,并在所述扩展关系对应库中删除或添加所述扩展点与所述扩展实现的对应关系,在所述扩展实现对应的功能模块的配置文件中删除或添加所述扩展实现的相关信息,其中,所述扩展点对应多个扩展实现,所述多个扩展实现的相关信息分别存储在不同功能模块的配置文件中。9.如权利要求8所述的装置,其特征在于,该装置还包括扩展关系对应库生成模块,用于扫描WEB应用程序的各功能模块的配置文件,并从所述配置文件中解析出扩展点与扩展实现的对应关系;记录所述扩展点与扩展实现的对应关系,生成扩展关系对应库。10.—种WEB服务器,包括权利要求79任一权项所述的装置。全文摘要本发明公开了WEB应用中实现页面插件化的方法和WEB服务器,应用于网络
技术领域:
,该方法包括WEB服务器接收到用户终端发起的WEB页面请求后,根据所述请求中的网址确定对应的WEB页面文件,并解析;当解析到所述WEB页面文件中的扩展点时,根据预先生成的扩展关系对应库查出该扩展点对应的扩展实现,其中,所述扩展点用于挂接扩展实现,所述扩展实现是指挂接到对应扩展点的实现内容;将所述扩展点对应的扩展实现的实现内容插入所述WEB页面文件,并将所述WEB页面文件运行后的结果返回用户终端。应用本发明实施例提供的方法和装置能够解决现有技术中WEB应用中各模块在界面展示层相互耦合,难于扩展和组装的问题。文档编号G06F17/30GK101727490SQ20091025438公开日2010年6月9日申请日期2009年12月22日优先权日2009年12月22日发明者卢曙亮申请人:福建星网锐捷网络有限公司