CN1744498A - 一种网络服务器以及网络服务器与浏览器的数据交互方法 - Google Patents

一种网络服务器以及网络服务器与浏览器的数据交互方法 Download PDF

Info

Publication number
CN1744498A
CN1744498A CN 200410074118 CN200410074118A CN1744498A CN 1744498 A CN1744498 A CN 1744498A CN 200410074118 CN200410074118 CN 200410074118 CN 200410074118 A CN200410074118 A CN 200410074118A CN 1744498 A CN1744498 A CN 1744498A
Authority
CN
China
Prior art keywords
request
client
network server
server end
page
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 200410074118
Other languages
English (en)
Other versions
CN100362788C (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.)
Beijing Huawei Digital Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100741185A priority Critical patent/CN100362788C/zh
Publication of CN1744498A publication Critical patent/CN1744498A/zh
Application granted granted Critical
Publication of CN100362788C publication Critical patent/CN100362788C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络服务器,该网络服务器增加了用于实现客户端组件到服务器端组件、以及服务器端组件到客户端组件的转换的标签封装模块。本发明还公开了客户端浏览器和网络服务器交互数据的方法,包括:网络服务器接收到用户的请求后,确定该请求所属的应用和页面类文件;然后,网络服务器将该请求提交给标签封装模块,标签封装模块判断该请求是否为客户端事件触发的,如果是,则对该请求进行处理,并根据处理结果确定返回客户端浏览器的页面类文件,然后,生成相应的客户端页面文件,返回浏览器;否则,生成用户请求的页面类文件的客户端页面文件,返回浏览器。应用本发明的方法可以极大的降低应用程序开发的复杂程度,易于和已有应用集成。

Description

一种网络服务器以及网络服务器与浏览器的数据交互方法
技术领域
本发明涉及到互联网通信技术,特别涉及到一种互联网中的网络服务器以及该网络服务器和客户端浏览器交互数据的方法。
背景技术
随着网络时代的来临,用户可以通过网络访问局域网或者互联网上服务器的数据以及其他软件资源,实现数据的交互,以获得更多的信息。因此,如何实现用户和网络服务器之间的数据交互成为互联网技术的一个关键问题。在早期阶段,比较通用的方法有基于客户端/服务器(C/S,Client/Server)模式的数据交互方式。在这种模式下,服务器通常采用高性能的个人计算机、工作站或小型机,并包含大型数据库系统,如Oracle、Sybase、Informix或SQL Server等;且客户端的个人计算机需要安装专用的客户端软件,才能实现客户端和服务器之间的数据交互。C/S模式的优点是能充分发挥客户端个人计算机的处理能力,很多工作可以在客户端处理后再提交给服务器,因此客户端响应速度快。但是,由于C/S模式的客户端计算机需要安装专用的客户端软件,因此,网络中任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护;另外,在系统软件升级时,网络中的每一台客户端计算机都需要重新安装,造成其维护和升级成本非常高。因此,这种模式也被形象的称为“胖”客户端模式。
为了解决上述问题,目前,通常采用浏览器/服务器(B/S,Browser/Server)模式进行客户端计算机和网络(Web)服务器之间的数据交互。图1为B/S模式的结构示意图。从图1可以看出,在这种B/S模式下,客户端计算机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,就可以通过该浏览器向分布在网络上的许多Web服务器发送超文本传输协议(HTTP)请求;Web服务器包含分发模块以及请求处理模块;其中,分发模块负责对接收到的HTTP请求进行分发处理,确定该HTTP请求所属的应用以及页面,并将分发处理结果发送给请求处理模块;请求处理模块对来自客户端浏览器的HTTP请求进行处理,访问数据库,并将用户所需信息通过超文本标记语言(HTML)文件作为HTTP请求响应返回到客户端浏览器。
上述HTML文件可以在浏览器上表现为用户可以浏览的页面,这些页面中包含各种各样的组件,包括:窗口(Frame)、画板(Panel)、按钮(Botton)、文本框(Textfeild)、下拉菜单(Combox)等等。HTML文件不仅要定义页面包含的各种组件,还要定义这些组件的大小、位置、颜色、默认值等属性。上述这种B/S结构简化了客户端计算机的工作,客户机上只需配置少量的客户端软件。而Web服务器将担负更多的工作,例如,对数据库的访问和应用程序的执行将在Web服务器上完成。因此,这种模式也相应的称为“瘦”客户端模式。
B/S模式最大的优点就是客户端计算机不用安装任何专门的客户端软件,可以实现客户端零维护,大大降低了系统的维护和升级成本;另外,用户只要有一台装有浏览器的计算机就能够作为客户端和Web服务器进行数据交互,使得系统的扩展非常容易。因此,B/S模式已经成为未来互联网通信技术发展的一种趋势。
但是,由于B/S模式是“瘦”客户端的模式,浏览器并不安装特殊的客户端软件,因此,在应用程序的开发过程中,一方面应用程序开发人员在编写应用程序时,必须编写该应用在客户端浏览器显示的客户端页面文件,即HTML文件;另一方面,如果应用程序在这个页面中设置了客户端浏览器需要监听的事件,例如,用户是否点击确定按钮等,应用程序开发人员还需要编写在所设置的客户端浏览器监听的事件发生的情况下,客户端浏览器自动执行的脚本语言,即Javascript文件。由此,服务器端应用程序的开发工作通常要涉及到如HTML、Javascript、JSP、Servlet等等多种网络编程技术,导致应用B/S模式进行Web服务器应用程序的开发相对复杂,且具有开发效率相对较低的缺点;另外,同样是由于服务器端应用程序的开发工作通常要涉及到多种网络编程技术,导致对应用程序开发人员的要求也相对较高。
发明内容
为了解决上述技术问题,本发明的一个目的是提供一种网络服务器端的编程框架,降低应用程序开发的复杂程度,使开发的应用程序易于和已有应用集成。
本发明的另一个目的是提供一种客户端浏览器和网络服务器进行数据交互的方法,也可以降低应用程序开发的复杂程度。
本发明所述的网络服务器包含:分发模块以及请求处理模块;其中,分发模块用于接收来自客户端浏览器的请求,和处理该请求以确定该请求所属应用的页面;请求处理模块用于从分发模块接收处理后的请求,根据该请求所属的页面,完成与数据库之间的交互,确定该网络服务器返回给客户端浏览器的页面;该网络服务器还包括一个标签封装模块,该标签封装模块用于:
接收分发模块处理后的请求,根据该请求所属的页面,对该请求进行解析,转换为网络服务器可以识别的信息,并发送给网络服务器的请求处理模块处理;
接收请求处理模块的处理结果,并根据网络服务器确定的发送给客户端浏览器的页面,生成客户端页面文件,返回给客户端浏览器。
本发明所述客户端浏览器与网络服务器交互数据的方法,在网络服务器上预先开发网络服务器端应用程序,其中,所述网络服务器端应用程序包括:应用描述文件以及服务器端页面类文件;
所述方法包括以下步骤:
a、客户端浏览器发送请求;
b、网络服务器接收到请求后,根据预先开发的网络服务器端应用描述文件确定该请求所属的网络服务器端应用的页面类文件;
c、判断该请求是否为客户端事件触发的,如果是,则根据步骤b所确定的页面类文件对该请求进行处理,并根据处理结果确定本应用返回给客户端浏览器的页面类文件,然后,执行步骤d;否则,确定返回给客户端浏览器的页面类文件为步骤b确定的该请求所属的页面类文件,然后,执行步骤d;
d、标签封装模块根据确定的返回给客户端浏览器的页面类文件,生成相应的客户端页面文件,并发送到客户端浏览器,客户端浏览器通过该页面文件实现与网络服务器交互数据。
所述的应用程序开发包括以下步骤:根据该网络服务器计划提供的应用,创建应用描述文件;和根据应用描述文件中定义的网络服务器端应用包含的页面,创建相应的网络服务器端页面类文件。
所述创建相应的网络服务器端页面类文件包括:定义所述服务器端页面包含的网络服务器端组件,设置所述服务器端组件的属性,和自动生成客户端组件的方法以及监听器方法。
步骤b所述确定该请求所属的网络服务器端应用以及页面类文件包括:根据所述请求统一资源定位符地址中的应用名和页面名确定该请求所属的网络服务器端应用的页面类文件。
步骤c所述标签封装模块判断该请求是否为客户端事件触发包括:标签封装模块检测该请求的事件源是否为一个客户端组件,如果是,则该请求为客户端事件触发的;否则,该请求为普通请求。
步骤c所述标签封装模块对该请求进行处理包括以下步骤:
c1、标签封装模块从请求中所携带的客户端页面文件中分离出各个客户端组件,通过组件的唯一标识,从服务器的缓存中找出和该标识相同的网络服务器端组件;
c2、标签封装模块根据请求的事件源确定触发该请求的客户端组件,并在步骤c1所述的网络服务器端组件中确定与触发该请求的客户端组件对应的网络服务器端组件;
c3、标签封装模块执行在网络服务器端页面类文件中定义的,步骤c2确定的网络服务器端组件的事件处理逻辑,将用户提交的信息分发到相应的网络服务器端组件进行处理。
步骤d所述生成相应的客户端页面文件的方法包括以下步骤:
d1、标签封装模块根据步骤c确定的网络服务器端页面类文件信息,确定网络服务器端该页面类文件包含的所有网络服务器端组件;
d2、标签封装模块根据所述网络服务器端组件的属性,将服务器端组件转换为客户端组件;并将所有客户端组件合并,生成客户端的页面文件。
步骤d2所述将网络服务器端组件转换为客户端组件包括:标签封装模块应用所述网络服务器端组件预先设置的生成客户端组件的方法,为这些组件加入相应的超文本标记语言标签,将网络服务器端组件转换为客户端组件。
步骤d1进一步包括:标签封装模块判断所述网络服务器端组件是否包含网络服务器端事件,如果是,则步骤d2进一步包括:将所述网络服务器端事件转换为客户端事件,并和相应客户端组件合并;否则,直接执行步骤d2。
所述将网络服务器端事件转换为客户端事件包括:标签封装模块应用服务器端组件预先设置的监听器方法,生成发生这些组件监听器所监听的事件时客户端浏览器自动执行的脚本语言。
所述步骤d2进一步包括:在将服务器端组件转换为客户端组件后,标签封装模块为所述客户端组件设置唯一的标识;网络服务器为与所述客户端组件对应的网络服务器端组件设置相同的标识;并在网络服务器端的缓存中保存所述网络服务器端组件。
所述请求为HTTP请求。
由此可以看出,应用本发明所述的网络服务器以及客户端浏览器和网络服务器进行数据交互的方法可以获得以下有益效果:
1、本发明的方法使用标签封装模块自动根据Web服务器端页面生成客户端页面,使应用程序开发人员,在开发Web服务器端应用程序时,不必考虑如何实现客户端页面的问题,无需编程人员了解HTML、JSP等编程语言、大大简化了开发的复杂程度;
2、本发明的方法使用标签封装模块根据Web服务器端页面内各个组件的属性,自动生成客户端监听的事件,无需编程人员了解Javascript以及Servlet等相关知识,进一步降低了Web服务器端应用程序开发的复杂程度,同时也降低了对应用开发人员的要求;
3、本发明的方法使用标签封装模块解析用户提交的页面文件,将客户端的组件转换成为Web服务器端的组件,并将用户修改的信息输入到相应的Web服务器端组件中,实现客户端浏览器和Web服务器之间的信息交互;
4、由于本发明的方法将在进行应用程序开发的时候,将Web服务器端页面上的各级组件都当作标签来使用,并且这些标签可以随时嵌入到任何页面的任何位置,因此,采用标签技术进行网络编程易于与现有系统集成。
附图说明
图1为B/S模式的结构示意图;
图2为本发明所述网络服务器和客户端浏览器的结构示意图;
图3为本发明所述的编写应用程序方法的流程图;
图4为用户通过统一资源定位符方式访问Web服务器上应用方法的流程图;
图5为用户通过表格方式与Web服务器进行数据交互方法的流程图。
具体实施方式
为使发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
为了降低Web服务器端应用程序开发的复杂程度,本发明所述Web服务器在原有的B/S模式的结构的Web服务器中加入了标签封装(TagWrapper)功能模块。图2为本发明所述网络服务器和客户端浏览器的结构示意图。
如图2所示,在本发明所述的Web服务器中,Web服务器在分发模块以及请求处理模块基础之上增加了Tag Wrapper模块。
在接收方向,Tag Wrapper功能模块接收经过分发模块处理的HTTP请求,对接收的HTTP请求进行解析,将客户端组件转换为Web服务器端组件,分离出Web服务器希望获得的信息,并发送给Web服务器的请求处理模块进行处理。请求处理模块对用户的请求进行处理,负责与Web服务器端数据库进行交互。
在发送方向,Tag Wrapper功能模块接收请求处理模块的处理结果,并根据Web服务器请求处理模块确定的发送给客户端浏览器的页面信息,将Web服务器端的组件封装成为客户端浏览器可以识别的客户端组件,自动生成客户端页面文件;并在封装客户端组件的同时将Web服务器监听的事件封装成为客户端监听的事件。
由此可以看出,Tag Wrapper功能模块可以实现,客户端组件到服务器端组件的转换、服务器端组件到客户端组件的转换以及服务器端事件到客户端事件的转换,因此,应用开发人员在应用上述网络服务器进行应用程序开发的时候,不必考虑如何实现客户端页面以及客户端需要监听的事件问题,因而无需应用开发人员了解HTML、JSP、Javascript以及Servlet等相关知识,降低了Web服务器端应用程序开发的复杂程度,同时降低了对应用开发人员的要求。
同样为了降低Web服务器端应用程序开发的复杂程度,本发明还提供了一种基于该网络服务器的客户端浏览器和网络服务器进行数据交互的方法,应用本发明所述的方法,可以在本发明所述的网络服务器上实现客户端浏览器以及网络服务器之间的数据交互。
需要说明的是,作为客户端浏览器和Web服务器进行数据交互的前提条件,应用程序开发人员必须在Web服务器端应用程序的开发阶段,开发用户可以访问的应用程序,并将编写好应用程序存入Web服务器中,经过Web服务器的发布,即Web服务器重新启动配置后,用户就可以通过客户端浏览器应用本发明所述的方法访问Web服务器中的应用程序。
图3显示了本发明中进行应用程序开发的流程。如图3所示,本发明所述的应用程序开发具体包括以下步骤:
步骤301:应用程序开发人员根据该Web服务器计划提供的应用,创建应用描述文件;
该应用描述文件的作用类似一个配置文件,该应用描述文件将该Web服务器计划提供的应用,以及每个应用将要提供给用户的各个页面都在这个应用描述文件中进行了配置;
例如,如果一个Web服务器计划包含登陆应用,并且该登陆应用包含登陆页面、登陆成功页面以及登陆失败页面,则在该应用描述文件中,就要定义一个登陆应用,并指定相应的应用名,如Demo;然后,再定义该应用包含的页面,即登陆页面、登陆成功页面以及登陆失败页面,同时为这些页面指定相应的页面名,如login、success以及error;
步骤302:应用程序开发人员根据在上述应用描述文件中定义的应用以及应用包含的页面类,创建Web服务器端页面类文件;
在这一步骤中,页面文件的名字要与应用描述文件中定义的页面名一致。例如,如果应用Java语言编写上述页面类文件,则应该编写登陆页面文件,login.java、success.java以及error.java;
另外,在这些页面类文件中详细定义了该页面上包含的各种组件、这些组件的属性,包括:位置、大小、颜色、值等等,以及这些组件的Web服务器端事件和相应的事件处理逻辑;
例如,在上述的login.java页面类文件中,就至少应该包含一个输入用户名的文本框、一个输入密码的文本框以及一个提交按钮;以及这些组件的属性,如大小、颜色、位置,值等等;页面类文件还应该定义这些组件的Web服务器端事件以及这些事件触发的事件处理逻辑。比如,在所述login页面类中保护两个文本框以及一个按钮,通常情况下,Web服务器需要监听按钮的状态,并且在用户点击按钮后,获取用户提交的两个文本框的内容。因此,该页面类文件需要定义该按钮的Web服务器端事件为监听按钮是否被用户点击;另外,该页面类文件还要定义该Web服务器端事件发生后,即用户点击页面上的按钮后,Web服务器将执行获取两个文本框内容的事件处理逻辑;
步骤303:文件编写完成以后,重新启动配置Web服务器;
在这一步骤中,重新启动Web服务器的目的是重新配置Web服务器,这样,Web服务器才能识别新写好的应用。
经过上述步骤301~303,用户就可以通过浏览器应用本发明的数据交互方法访问Web服务器的应用了。
需要说明的是,上述服务器端页面类文件的开发使用了面向对象技术,即在应用程序开发之前,在Web服务器的开发平台上,预先建立了应用程序可能使用的各种服务器端组件的基本类,比如,Frame、Panel、Botton的基本类等等;并且在这些组件的基本类中进一步定义了这些组件的基本属性,比如这些组件的值和大小、颜色、位置等属性;还定义这些服务器端组件的事件监听器以及事件监听器方法,即发生监听器所监听的事件时,客户端浏览器自动执行的脚本语言,例如,在按钮的基本类组件的定义中,就需要设定该按钮的监听器为用户是否点击该按钮,且其监听器方法为用户点击该按钮的事件发生时,客户端浏览器所要执行脚本语言。组件的基本类还需要定义自动生成客户端组件的方法,即将这些服务器端组件转换为客户端组件的方法,例如,在服务器端组件基本类的定义中包含了将组件转换成为HTML代码的方法。
这样,应用上述开发平台的应用程序开发人员,仅仅需要关心Web服务器端应用的各个页面所包含的服务器端组件,并在编写Web服务器端页面类文件的时候实例化相应的组件基本类就可以了,而不需要进一步考虑如何生成客户端页面,也不需要考虑如何将Web服务器监听的事件转换称为客户端浏览器监听的事件,这些操作都是可以由Tag Wrapper调用各个服务器端组件的相应方法自动完成。因此,可以大大降低应用开发的复杂程度。
在应用程序开发完成,并发布后,用户就可以通过浏览器访问Web服务器上的应用了。通常,用户通过客户端浏览器与Web服务器进行数据交互有两种方式:一种是通过用户在客户端浏览器的统一资源定位符(URL,Uniform Resource Location)地址栏中键入所要访问应用URL地址的方式访问Web服务器应用,也被称为URL方式;另一种是当用户在客户端的页面上对某个组件进行的操作时由该组件的客户端事件触发的数据交互过程,也被称为表格(Form)方式。通常情况下,Form方式将提交客户端页面文件到Web服务器相应的应用中的相应页面文件类,并且在其事件源中标注触发该交互过程的组件。
在本发明所述的方法中,Web服务器接收到用户的HTTP请求后,首先通过URL地址确定该请求所属的应用以及页面,然后由Tag Wrapper根据该HTTP请求的事件源判断该请求是URL方式的请求还是Form方式的请求,然后,在进行相应的处理。
图4显示了用户通过URL方式访问Web服务器上应用的方法流程。如图4所示,本发明所述的访问过程包括以下步骤:
步骤401:用户应用HTTP协议,在浏览器的URL地址栏中键入所要访问应用的URL地址;
在这一步骤中,如果用户想要访问上述步骤301~303编写的登陆应用,就需要在其浏览器的URL地址栏中键入“http://Web服务器的IP地址:端口号/app=demo&page=login”。其中,demo为应用描述文件中,该应用的应用名;login为该应用的登陆页面的页面名;
步骤402:Web服务器接收到用户的请求后,根据用户键入的URL地址中的应用名以及页面名,确定用户请求所属的应用以及页面类文件;
如上所述,当Web服务器接收到用户的请求后,解析在上述步骤301建立的应用描述文件,确定用户请求的是demo应用中的login.java页面类;
步骤403:Web服务器将该HTTP请求提交给Tag Wrapper;Tag Wrapper首先判断该HTTP请求包含的事件源信息,并在根据该HTTP请求的事件源确定是URL方式的HTTP请求后,根据在步骤402确定的页面类,以及对应的页面类文件,生成客户端页面文件;
例如,在这一步骤中,Tag Wrapper根据写好的页面类文件login.java自动生成客户端浏览器可以识别的HTML文件。该HTML文件在客户端浏览器上显示为登陆页面,该页面至少包含一个输入用户名的文本框、一个输入密码的文本框以及一个提交按钮;
步骤404:Web服务器将生成的客户端页面文件返回到用户的浏览器。
这样,客户端的浏览器就将显示编写好的login页面,用户可以通过页面上的文本框输入相应的用户名和密码,完成登陆操作。
上述步骤403所述的Tag Wrapper生成客户端页面的方法具体为:
步骤4031:Tag Wrapper根据编写好的Web服务器端页面类文件信息,确定Web服务器端该页面类包含的所有Web服务器端组件以及这些组件是否包含Web服务器端事件;
例如:如果一个页面包含了一个下拉菜单或者一个文本框以及一个提交按钮,通常Web服务器需要了解用户是否修改下拉菜单的内容或修改文本框的内容并提交等等。这些下拉菜单内容的变化或者用户点击提交按钮就是Web服务器需要监听的事件的内容;
步骤4032:Tag Wrapper根据该Web服务器端页面类文件包含的所有组件的属性,调用相应组件提供的自动生成客户端组件的方法,在Web服务器端页面类文件中加入相应的HTML标签,将Web服务器端组件转换为相应的客户端组件,并为所有Web服务器端组件设置唯一的标识;同时,Web服务器为与所述客户端组件对应的Web服务器端组件设置相同的标识、并在Web服务器端的缓存中保存所述Web服务器端组件;
在这一步骤中,Tag Wrapper将根据Web服务器端组件的属性,包括:大小、颜色、位置、值等等,调用这些组件预先定义的生成HTML的方法,分别给相应的Web服务器端页面类文件中的各个组件加入相应的HTML标签,生成这些组件的HTML代码;
步骤4033:Tag Wrapper调用Web服务器端页面类文件所包含组件的监听器方法,为包含Web服务器端事件的组件自动生成发生该Web服务器端事件时,客户端浏览器自动执行的脚本语言,将Web服务器端事件转换为客户端事件;
例如,如果Web服务器需要监听的事件为用户是否修改了文本框的内容并点击了页面上的提交按钮,因此,此时的客户端浏览器就需要监听用户是否点击了提交按钮这一客户端事件。在这种情况下,Tag Wrapper将调用该提交按钮的监听器方法,生成用户点击该按钮时,客户端浏览器自动执行的Javascript程序。当浏览器执行该Javascript程序时,浏览器会自动将用户修改后的客户端页面文件提交到Web服务器;
又如,如果Web服务器需要监听的事件为页面上下拉菜单内容的变化,而通常情况下,用户修改了下拉菜单的内容时,浏览器自动将修改后的页面提交到Web服务器,此时客户端监听的事件也将是下拉菜单的内容是否改变。在这种情况下,Tag Wrapper也将调用该下拉菜单的监听器方法,生成用户修改下拉菜单内容时,客户端浏览器自动执行的Javascript程序,该Javascript程序将自动将用户修改后的客户端页面文件提交到Web服务器;
步骤4034:Tag Wrapper将所有客户端组件以及客户端事件合并,生成客户端的页面文件;
例如,如果该页面包含两个文本框以及一个提交按钮,Tag Wrapper会将步骤4033生成的这三个组件的HTML代码合并生成客户端的浏览器可以浏览的一个页面文件,即HTML文件。该HTML文件将嵌入由用户点击提交按钮触发的、客户端浏览器自动执行的Javascript代码。该HTML文件在客户端的浏览器将显示为包含两个文本框以及一个提交按钮的页面,并且在用户修改文本框的内容并点击确定提交按钮后,客户端浏览器将自动执行嵌入的Javascript代码,自动将该客户端页面提交到Web服务器。
通过上述步骤401~404以及步骤4031~4034的过程,用户就可以通过发送URL方式的HTTP请求访问Web服务器的应用了。
从上述过程可以看出,本发明的Tag Wrapper模块可以根据Web服务器端的页面类文件生成客户端浏览器可以识别的页面文件,同时以及发生客户端事件时,浏览器执行的相应的代码,并将这些组件的代码进行组合,自动生成客户端页面文件,实现Web服务器端组件到客户端组件的自动转换,以及Web服务器端事件到客户端事件的自动转换,使应用程序的开发人员不需要了解HTML、Javascript、JSP、Servlet等等多种网络编程技术,就可以实现大型应用程序的开发,大大降低了应用程序开发的复杂程度。
图5显示了用户通过对Form方式的HTTP请求与Web服务器进行数据交互的过程。如图5所示,Web服务器在接收到客户端事件触发的请求后,将执行如下操作:
步骤501:Web服务器根据用户提交页面文件的URL地址,并通过解析应用描述文件,确定该请求所属的Web服务器应用以及页面类文件;
例如,如果用户点击了上述登陆页面上的提交按钮,浏览器将自动将修改后的页面提交到Web服务器,该页面的URL地址仍为:“http://Web服务器的IP地址:端口号/app=demo&page=login”,Web服务器就可以通过解析应用描述文件确定该页面属于Web服务器端demo应用的login.java页面类文件;
步骤502:Web服务器将该HTTP请求提交给Tag Wrapper,Tag Wrapper通过判断该HTTP请求的事件源,确定该HTTP请求的事件源是由客户端组件触发后,Tag Wrapper将从客户端页面文件中分离出各个客户端组件,通过这些组件的唯一标识,从服务器的缓存中找出和该标识相同的组件,从而将客户端组件转换为Web服务器端组件;
例如,用户在浏览器显示的客户端页面修改了用户名和密码两个文本框并点击了提交按钮。在这一步骤中,Tag Wrapper就通过解析客户端浏览器提交的HTML文件,得到该文件包含的所有客户端组件,即该客户端页面文件至少包含两个文本框以及一个按钮;Tag Wrapper去除这些客户端组件相应的HTML标签,将这些客户端组件转换成为Web服务器端组件,即两个包含用户名、密码的Web服务器端文本框组件,以及一个按钮组件;
步骤503:Tag Wrapper根据HTTP请求的事件源确定触发该HTTP请求的Web服务器端组件;
例如,用户点击页面上的提交按钮并提交相应的页面文件后,该HTTP请求的事件源将标注触发本次交互过程的组件为该提交按钮,因此,TagWrapper可以确定触发该HTTP请求的Web服务器端组件为该按钮组件;
步骤504、Tag Wrapper根据Web服务器端的页面类文件执行该服务器端组件的事件处理逻辑,将用户提交的信息分发到相应的Web服务器端组件进行处理;
例如,在应用的开发阶段,该应用的页面类文件中设定Web服务器将监听按钮的状态,在用户点击页面上的按钮后,提交页面上两个文本框的内容的事件处理逻辑。因此,在Tag Wrapper检测到触发本次交互过程的组件为该提交按钮后,Tag Wrapper会自动将用户提交的两个文本框的内容分发到相应的Web服务器端文本框组件中进行处理;
步骤505:Web服务器相应组件对用户提交的信息进行处理,并根据处理结果,确定返回给用户的Web服务器端页面类文件;
例如,Tag Wrapper将用户输入的用户名和密码信息分发到Web服务器相应的组件后,Web服务器将对用户输入的信息进行鉴权,如果用户有权限登陆,则应返回登陆成功页面success.java;如果用户没有权限登陆,则应返回登陆失败页面error.java;
步骤506:Tag Wrapper根据该Web服务器端页面类文件,生成客户端页面,返回用户的浏览器。即Tag Wrapper根据success.java页面类文件或error.java页面类文件,自动生成上述登陆成功或者登陆失败页面的客户端页面,即HTML文件,返回客户端浏览器。
在这一步骤中,生成客户端页面的方法与步骤4031~4034所述的方法相同。
通过上述步骤501~506的过程可以看出,Tag Wrapper可以对客户端发送的页面文件进行解析,通过去除相应HTML标签,将客户端组件转换为Web服务器端组件,同时将客户端发生的事件,转换为Web服务器监听的事件,实现了客户端浏览器与Web服务器之间的数据交互。
通过以上分析可以看出,本发明的方法由于使用Tag Wrapper实现客户端组件和Web服务器端组件之间的转换,大大降低了应用程序开发的复杂程度;同时,由于本发明所述的方法使用的是标准的Java语言接口,因此可以实现新编写的应用程序与现有应用的集成。
以上举优选的实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所述为本发明的优选实施例而已,并不用以显示本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1、一种网络服务器,包含:分发模块以及请求处理模块;其中,分发模块用于接收来自客户端浏览器的请求,和处理该请求以确定该请求所属应用的页面;请求处理模块用于从分发模块接收处理后的请求,根据该请求所属的页面,完成与数据库之间的交互,确定该网络服务器返回给客户端浏览器的页面;
其特征在于,该网络服务器还包括一个标签封装模块,该标签封装模块用于:
接收分发模块处理后的请求,根据该请求所属的页面,对该请求进行解析,转换为网络服务器可以识别的信息,并发送给网络服务器的请求处理模块处理;
接收请求处理模块的处理结果,并根据网络服务器确定的发送给客户端浏览器的页面,生成客户端页面文件,返回给客户端浏览器。
2、一种客户端浏览器与网络服务器交互数据的方法,其特征在于,在网络服务器上预先开发网络服务器端应用程序,其中,所述网络服务器端应用程序包括:应用描述文件以及服务器端页面类文件;
所述方法包括以下步骤:
a、客户端浏览器发送请求;
b、网络服务器接收到请求后,根据预先开发的网络服务器端应用描述文件确定该请求所属的网络服务器端应用的页面类文件;
c、判断该请求是否为客户端事件触发的,如果是,则根据步骤b所确定的页面类文件对该请求进行处理,并根据处理结果确定本应用返回给客户端浏览器的页面类文件,然后,执行步骤d;否则,确定返回给客户端浏览器的页面类文件为步骤b确定的该请求所属的页面类文件,然后,执行步骤d;
d、标签封装模块根据确定的返回给客户端浏览器的页面类文件,生成相应的客户端页面文件,并发送到客户端浏览器,客户端浏览器通过该页面文件实现与网络服务器交互数据。
3、如权利要求2所述的方法,其特征在于,所述的应用程序开发包括以下步骤:根据该网络服务器计划提供的应用,创建应用描述文件;和根据应用描述文件中定义的网络服务器端应用包含的页面,创建相应的网络服务器端页面类文件。
4、如权利要求3所述的方法,其特征在于,所述创建相应的网络服务器端页面类文件包括:
定义所述服务器端页面包含的网络服务器端组件,设置所述服务器端组件的属性,和自动生成客户端组件的方法以及监听器方法。
5、如权利要求2所述的方法,其特征在于,步骤b所述确定该请求所属的网络服务器端应用以及页面类文件包括:
根据所述请求统一资源定位符地址中的应用名和页面名确定该请求所属的网络服务器端应用的页面类文件。
6、如权利要求2所述的方法,其特征在于,步骤c所述标签封装模块判断该请求是否为客户端事件触发包括:
标签封装模块检测该请求的事件源是否为一个客户端组件,如果是,则该请求为客户端事件触发的;否则,该请求为普通请求。
7、如权利要求2所述的方法,其特征在于,步骤c所述标签封装模块对该请求进行处理包括以下步骤:
c1、标签封装模块从请求中所携带的客户端页面文件中分离出各个客户端组件,通过组件的唯一标识,从服务器的缓存中找出和该标识相同的网络服务器端组件;
c2、标签封装模块根据请求的事件源确定触发该请求的客户端组件,并在步骤c1所述的网络服务器端组件中确定与触发该请求的客户端组件对应的网络服务器端组件;
c3、标签封装模块执行在网络服务器端页面类文件中定义的,步骤c2确定的网络服务器端组件的事件处理逻辑,将用户提交的信息分发到相应的网络服务器端组件进行处理。
8、如权利要求2所述的方法,其特征在于,步骤d所述生成相应的客户端页面文件的方法包括以下步骤:
d1、标签封装模块根据步骤c确定的网络服务器端页面类文件信息,确定网络服务器端该页面类文件包含的所有网络服务器端组件;d2、标签封装模块根据所述网络服务器端组件的属性,将服务器端组件转换为客户端组件;并将所有客户端组件合并,生成客户端的页面文件。
9、如权利要求8所述的方法,其特征在于,步骤d2所述将网络服务器端组件转换为客户端组件包括:标签封装模块应用所述网络服务器端组件预先设置的生成客户端组件的方法,为这些组件加入相应的超文本标记语言标签,将网络服务器端组件转换为客户端组件。
10、如权利要求8所述的方法,其特征在于,步骤d1进一步包括:标签封装模块判断所述网络服务器端组件是否包含网络服务器端事件,如果是,则步骤d2进一步包括:将所述网络服务器端事件转换为客户端事件,并和相应客户端组件合并;否则,直接执行步骤d2。
11、如权利要求10所述的方法,其特征在于,所述将网络服务器端事件转换为客户端事件包括:
标签封装模块应用服务器端组件预先设置的监听器方法,生成发生这些组件监听器所监听的事件时客户端浏览器自动执行的脚本语言。
12、如权利要求8所述的方法,其特征在于,所述步骤d2进一步包括:
在将服务器端组件转换为客户端组件后,标签封装模块为所述客户端组件设置唯一的标识;网络服务器为与所述客户端组件对应的网络服务器端组件设置相同的标识;并在网络服务器端的缓存中保存所述网络服务器端组件。
13、如权利要求2所述的方法,其特征在于,所述请求为HTTP请求。
CNB2004100741185A 2004-08-31 2004-08-31 一种网络服务器以及网络服务器与浏览器的数据交互方法 Expired - Fee Related CN100362788C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100741185A CN100362788C (zh) 2004-08-31 2004-08-31 一种网络服务器以及网络服务器与浏览器的数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100741185A CN100362788C (zh) 2004-08-31 2004-08-31 一种网络服务器以及网络服务器与浏览器的数据交互方法

Publications (2)

Publication Number Publication Date
CN1744498A true CN1744498A (zh) 2006-03-08
CN100362788C CN100362788C (zh) 2008-01-16

Family

ID=36139719

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100741185A Expired - Fee Related CN100362788C (zh) 2004-08-31 2004-08-31 一种网络服务器以及网络服务器与浏览器的数据交互方法

Country Status (1)

Country Link
CN (1) CN100362788C (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227428B (zh) * 2008-01-30 2011-12-07 中兴通讯股份有限公司 一种应用服务器及其远程控制方法
CN101145936B (zh) * 2006-09-12 2012-04-18 阿里巴巴集团控股有限公司 一种在Web页面中添加标签的方法及其系统
WO2013106947A1 (en) * 2012-01-18 2013-07-25 Metrologic Instruments, Inc. Web-based scan-task enabled system. and method of and apparatus for developing and deploying the same on a client-server network
CN103473106A (zh) * 2013-09-30 2013-12-25 迈普通信技术股份有限公司 一种页面生成的方法及系统
CN106997374A (zh) * 2017-01-05 2017-08-01 深圳大宇无限科技有限公司 深度链接获取方法和装置
CN107103020A (zh) * 2010-03-24 2017-08-29 费希尔-罗斯蒙特系统公司 用于访问存储于服务器的过程数据的方法和装置
CN107438097A (zh) * 2017-06-26 2017-12-05 北京五八信息技术有限公司 网络请求处理方法及装置
CN108958825A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种信息配置方法及装置
CN109587116A (zh) * 2018-11-06 2019-04-05 交通银行股份有限公司 浏览器输入信息的保护方法、客户端及浏览器
CN111917833A (zh) * 2020-07-10 2020-11-10 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
JP3485252B2 (ja) * 1999-06-16 2004-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理方法、情報端末支援サーバ、コラボレーション・システム、情報処理プログラムを格納する記憶媒体

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145936B (zh) * 2006-09-12 2012-04-18 阿里巴巴集团控股有限公司 一种在Web页面中添加标签的方法及其系统
CN101227428B (zh) * 2008-01-30 2011-12-07 中兴通讯股份有限公司 一种应用服务器及其远程控制方法
CN107103020A (zh) * 2010-03-24 2017-08-29 费希尔-罗斯蒙特系统公司 用于访问存储于服务器的过程数据的方法和装置
CN107103020B (zh) * 2010-03-24 2021-06-22 费希尔-罗斯蒙特系统公司 用于访问存储于服务器的过程数据的方法和装置
US10409566B2 (en) 2012-01-18 2019-09-10 Metrologic Instruments, Inc. Web-based scan-task enabled system, and method of and apparatus for developing and deploying the same on a client-server network
WO2013106947A1 (en) * 2012-01-18 2013-07-25 Metrologic Instruments, Inc. Web-based scan-task enabled system. and method of and apparatus for developing and deploying the same on a client-server network
US9753704B2 (en) 2012-01-18 2017-09-05 Metrologic Instruments, Inc. Web-based scan-task enabled system and method of and apparatus for developing and deploying the same on a client-server network
CN103473106A (zh) * 2013-09-30 2013-12-25 迈普通信技术股份有限公司 一种页面生成的方法及系统
CN103473106B (zh) * 2013-09-30 2017-02-01 迈普通信技术股份有限公司 一种页面生成的方法及系统
CN106997374A (zh) * 2017-01-05 2017-08-01 深圳大宇无限科技有限公司 深度链接获取方法和装置
CN108958825A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种信息配置方法及装置
CN107438097A (zh) * 2017-06-26 2017-12-05 北京五八信息技术有限公司 网络请求处理方法及装置
CN107438097B (zh) * 2017-06-26 2021-09-21 北京五八信息技术有限公司 网络请求处理方法及装置
CN109587116A (zh) * 2018-11-06 2019-04-05 交通银行股份有限公司 浏览器输入信息的保护方法、客户端及浏览器
CN111917833A (zh) * 2020-07-10 2020-11-10 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统
CN111917833B (zh) * 2020-07-10 2023-06-02 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统

Also Published As

Publication number Publication date
CN100362788C (zh) 2008-01-16

Similar Documents

Publication Publication Date Title
CN1271502C (zh) 工作站上打印机实例的基于网络的创建
CN1220745A (zh) 与传统主机系统操作持续相连的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器
US7617459B2 (en) Apparatus, system, and method for automatically generating a web interface for an MFS-based IMS application
CN100337235C (zh) 访问数据库的方法及装置
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
CN1750470A (zh) 数据共享系统、方法以及软件工具
CN1424657A (zh) 设备信息获取方法、服务器设备和计算机可读存储介质
CN1892653A (zh) 无干扰小端口提交打印的方法与系统
CN1798037A (zh) 用于处理基于浏览器的应用中的安全问题的多域访问代理
CN1991839A (zh) 支持信息访问的方法和系统及其记录介质
CN1682183A (zh) 在客户机-服务器通信中处理增量数据的方法和计算机系统
CN1226031A (zh) 对浏览器内显示的数据进行过滤和控制的高速缓冲代理
CN1601526A (zh) 用于在计算机网络内搜索的方法和设备
EP1872208A1 (en) Method and apparatus to select and deliver portable portlets
CN1661555A (zh) 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
CN104767649A (zh) 部署裸金属服务器的方法及装置
CN1841362A (zh) 用于处理电子表格的方法和系统
CN100351828C (zh) 基于分布式文件系统的文件存储系统及其文件访问方法
CN1744498A (zh) 一种网络服务器以及网络服务器与浏览器的数据交互方法
CN1728700A (zh) 基于struts框架的web电信网管系统及其方法
CN1606007A (zh) 用于客户支持的web浏览器控件
CN1822596A (zh) 一种客户/服务器架构中的数据处理方法
CN107729117B (zh) 一种虚拟机生成方法及系统
CN1852546A (zh) 一种用于基站系统的操作维护系统和方法
CN1975726A (zh) 资料中心服务器、资料服务系统及资料查询方法

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
ASS Succession or assignment of patent right

Owner name: HUAWEI DIGITAL TECHNOLOGY CO.

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20081024

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20081024

Address after: No. 3, information road, Haidian District, Beijing

Patentee after: Huawei Digit Technology Co., Ltd.

Address before: Bantian HUAWEI headquarters office building, Longgang District, Shenzhen, Guangdong

Patentee before: Huawei Technologies Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100085 Beijing, Haidian District on the road, No. 3

Patentee after: Beijing Huawei Digital Technology Co.,Ltd.

Address before: 100085 Beijing, Haidian District on the road, No. 3

Patentee before: Huawei Digit Technology Co., Ltd.

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

Granted publication date: 20080116

Termination date: 20180831

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