CN103399746B - 一种便于二次开发的信息管理***及开发方法 - Google Patents
一种便于二次开发的信息管理***及开发方法 Download PDFInfo
- Publication number
- CN103399746B CN103399746B CN201310332192.1A CN201310332192A CN103399746B CN 103399746 B CN103399746 B CN 103399746B CN 201310332192 A CN201310332192 A CN 201310332192A CN 103399746 B CN103399746 B CN 103399746B
- Authority
- CN
- China
- Prior art keywords
- web page
- page element
- event
- background event
- background
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种便于二次开发的信息管理***及开发方法,该信息管理***包括浏览器,服务器和数据库,其中浏览器还包括用户界面单元,服务器还包括页面模型模块,后台事件描述模块和数据库接口模块。开发人员在进行浏览器设计和二次开发时,只需要创建浏览器网页或在浏览器网页上定义新的网页元素,并根据新定义的网页元素增加对应的后台事件描述,最后定义该后台事件与数据库进行通讯的数据库接口代码并连接到数据库即可。本发明的信息管理***和开发方法往往只需几十行代码即可完成一个新网页的开发,开发人员只要掌握Java语言即可进行二次开发,极大地降低了开发难度,提高了开发效率。
Description
技术领域
本发明涉及信息管理***开发领域,尤其涉及的是浏览器/服务器模式架构的便于二次开发的信息管理***及其进行二次开发的开发方法。
背景技术
随着计算机技术的发展,越来越多的企业和政府机构开始采用电子化办公的方式来最大限度地提高工作效率,而信息管理***(MIS,Management Information System)则是其中最重要的组成部分。所谓MIS***,是一个由人、计算机及其他***设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的***。传统的MIS***的核心是客户端/服务器(C/S,Client/Server)架构,这种模式将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。C/S架构具有强壮的数据操纵和事务处理能力,以及数据的安全性和完整性约束。但随着应用规模的日益扩大,信息管理的复杂程度不断提高,C/S架构暴露出开发成本较高、移植困难、用户界面风格不统一、维护复杂、升级麻烦、信息内容和形式单一等缺点,使得许多新型MIS***开始采用浏览器/服务器(B/S,Browser/Server)架构。B/S架构比起C/S架构有着很大的优越性,传统的MIS***依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制;而B/S架构则不需要专门的操作环境,在任何地方,只要能上网,就能够操作MIS***,这其中的优劣差别是不言而喻的。
基于Web的MIS***,就是采用B/S架构的新型MIS***。它不仅可以用于高层决策,而且可以用于进行普通的商务管理。通过用户在浏览器网页端的具名登录(或匿名登录),以及相应的权限控制,可以实现在远端对***的浏览、查询、控制和审阅。
通常来说,使用现有的WEB开发框架可以完整地开发出一个基于WEB的MIS***,但需要开发人员熟练地掌握多种开发语言和开发技术,如JavaScript、HTML、JSP、JDBC等。然而一个复杂的MIS***往往需要随时增删和修改网页模块,或添加新的功能等,即所谓的二次开发。二次开发不仅带来了繁琐的代码编写工作,而且对开发人员的技术要求较高。
发明内容
本发明的目的是为了解决在MIS***二次开发过程中程序代码编写繁琐、开发人员需要掌握多种技术才可进行开发、开发周期长等问题,提出一种便于二次开发的信息管理***,用于快速建立需要的信息管理平台并在上面进行方便的二次开发。
本发明技术方案如下:
一种便于二次开发的信息管理***,包括浏览器,服务器和数据库,所述浏览器还包括用于定义网页元素及其网页元素标识的用户界面单元;所述服务器包括:
后台事件描述模块,设置有后台事件描述代码,用于对网页元素对应的各种后台事件进行描述,形成针对每个浏览器网页的后台事件描述类;
页面模型模块,用于对网页元素操作功能进行封装,并解析后台事件描述代码,实现对网页元素的前台事件与后台事件的自动绑定,形成页面模型类;
和数据库接口模块,用来实现所述后台事件描述模块与所述数据库的数据交互。
页面模型模块通过JavaScript代码将网页元素操作功能进行了封装,并将网页元素的前台事件与后台事件进行了绑定,开发人员只需编写新的浏览器网页和其对应的后台事件描述,就可以自动完成浏览器网页的开发。
进一步地,所述页面模型模块包括:
标注解析单元,用于从所述后台事件描述模块中识别网页元素标识、以及前台事件与后台事件的对应信息;
网页元素操作单元,用于将网页元素操作功能进行封装;
网页元素与后台事件绑定单元,用于接收所述标注解析单元解析出的网页元素标识、以及前台事件与后台事件的对应信息,从网页元素操作单元中找到对应的网页元素,再将该网页元素的前台事件和后台事件进行绑定。
进一步地:
所述网页元素操作单元将网页元素以网页元素标识进行识别,并以网页元素标识来建立网页元素索引,所述浏览器和后台事件描述模块需要操作哪个网页元素,则所述网页元素操作单元就根据网页元素索引进行查找,方便地找到需要的网页元素并进行响应。
所述网页元素与后台事件绑定单元当网页元素的前台事件触发时,自动调用该网页元素的前台事件绑定的后台事件。
进一步地,所述页面模型模块由一个Java页面模型类实现,所述后台事件描述模块包括至少一个Java后台事件描述类,并且所有的后台事件描述类都是所述页面模型类的继承类。页面模型模块中所有的功能放在一起,形成一个完整的Java类,称为页面模型类,是整个信息管理***的核心部分,而后台事件描述模块中定义的后台事件描述类全部继承自页面模型模块中的页面模型类,并且每个继承类都有其相对应的浏览器网页。
进一步地,所述将网页元素操作功能进行封装,所述对网页元素的前台事件和后台事件的自动绑定,是利用JavaScript脚本语言实现的。
本发明还提出了基于上述信息管理***的开发方法,用于对所述信息管理***进行二次开发,包括步骤:
步骤S1、创建浏览器网页或在浏览器网页上定义新的网页元素;
步骤S2、根据新定义的网页元素增加对应的后台事件描述,用于描述该网页元素对应的后台事件;
步骤S3、定义该后台事件与数据库进行通讯的数据库接口代码并连接到数据库。
进一步地,如果是在原来的网页上增加一个新的网页元素,则在原网页对应的后台事件描述类中增加该新的网页元素对应的后台事件描述;如果是创建新的浏览器页面,则增加一个对应的后台事件描述类。
本发明提出的便于二次开发的信息管理***及其开发方法,用Java的注解和解析功能将网页元素与后台事件进行绑定,并对JavaScript部分进行后台的统一封装,放入网页元素操作单元中,实现了标记语言的和逻辑语言的分离。该信息管理***可以大大简化开发人员的整个开发过程。只要针对一个信息管理***编写一个统一的页面模型模块,并设置好数据库以及各个模块所需要的开发语言包支持后,后续开发人员只需掌握Java语言即可方便地创建该***上所有的网页用户界面、对应的事件描述代码以及数据库接口代码,实现所需的信息管理功能。页面模型单元只需编写一次,即可用于整个信息管理***的所有页面。每当创建新的用户页面时,只需编写其浏览器页面和该页面相对应的具体页面描述代码即可,而不需像传统的信息***开发那样,要为每个页面的每个元素单独编写事件响应方法与业务处理方法等,不仅浪费大量的时间,也对开发人员的技术水平要求较高。本发明提出的***及方法极大的降低了开发难度,提高了开发效率。
附图说明
图1为本发明信息管理***的结构示意图;
图2为本发明页面模型类与后台事件描述类及网页的对应关系图;
图3为本发明进行二次开发的开发方法流程图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明一种便于二次开发的信息管理***如图1所示,包括浏览器1、服务器2,以及数据库3。
其中,浏览器1(即Browser端),用于在用户的终端上显示MIS***的浏览器网页供用户进行交互,浏览器网页上的每个网页元素必须要有唯一网页元素标识propety,用于服务器2对网页元素的识别和操作。
浏览器1具有用来定义网页元素及其网页元素标识propety的用户界面单元101,该用户界面单元101采用自主开发的基于JSP语言的标签库实现。
例如:一个网页元素按钮的property为operate,实现代码为:"<layout:key="计算"property="operate"/>"。
通过用户界面单元101,开发人员可以定义网页的外观,以及网页上有哪些网页元素,形成一个浏览器网页,便于用户浏览和互动。创建浏览器网页可以使用JSP,ASP,PHP等主流WEB开发语言来开发,也可以使用在某种开发语言的基础上提炼出的自定义标签开发库(如:StrutsLayout)来开发。创建网页时,只需创建页面上的网页元素即可,不需指定网页元素的动态行为和事件响应方法。
服务器2(即Server端)包括页面模型模块21,后台事件描述模块22,数据库接口模块23。
其中页面模型模块21,用于对浏览器网页上的网页元素操作功能利用JavaScript脚本语言进行统一的封装,并对外预留操作接口供开发人员使用;并解析后台事件描述代码,使用JavaScript脚本语言实现对网页元素的前台事件和后台事件进行自动绑定。
需要说明的是,这里的网页元素操作功能是使用代码去控制的动作,如获取文本内容,给网页弹出一个对话框等;前台事件指的是用户在交互过程中,对网页上面的网页元素进行主动的行为,比如按下一个按钮,按下回车键等;相应的后台事件是针对前台事件而产生的具体动作方法,如保存指定的内容到数据库,在数据库中搜索某关键字等。该模块使开发人员可以方便地调用浏览器1网页上的各个网页元素,并自由地编写后台事件。
其中,后台事件描述模块22,采用Java语言对网页元素对应的各种后台事件进行定义描述,形成针对每个后台事件的后台事件描述代码,用于对网页元素对应的各种后台事件进行描述,当用户在浏览器1网页上与网页元素进行互动时,调用后台事件描述模块22中定义的后台事件描述代码,执行相应的动作。可见,后台事件描述模块22能够实现单独设计每个网页的功能,又不需要每次重写所有的操作控制代码。
需要说明的是,页面模型模块21中所有的功能放在一起,形成一个完整的Java类,称为页面模型类,是整个***的核心部分;而后台事件描述模块22中定义的后台事件描述类全部继承自页面模型模块21中的页面模型类,并且每个继承类都有其相对应的网页,他们之间的对应关系如图2所示。就是说编写一个浏览器网页,就要为这个浏览器网页编写一个后台事件描述类,后台事件描述类与浏览器网页一一对应起来以实现网页上各个组件的作用。如图2所示,基于本发明的页面模型类,可以在后台事件描述模块22中为每个网页(网页a-d)定义一个后台事件描述类(后台事件描述类a-d),每个事件描述类对应一个网页。
一个用来实现保存操作的后台事件描述类的代码如下:
可见其是页面模型类的继承类。
数据库接口模块23用来实现后台事件描述模块22与数据库3的数据交互。数据库接口模块23实现了数据与数据库之间的保存、获取,或者实现重要的数据库基本功能如查询、检索等功能。
具体地,在本实施例中,数据库接口模块23采用Hibernate框架实现,数据库3采用Oracle实现。
例如:将一个物品信息保存到数据库的代码如下:
作为本发明的一个实施例,页面模型模块21还包括:
标注解析单元211,该单元采用Java的注解功能及反射机制实现,用于识别后台事件描述模块22中后台事件描述代码中“@注解名”关键字,并获得该后台事件描述所在的类或方法等,即获得网页元素标识property,以及前台事件与后台事件的对应信息,并推送到网页元素与后台事件绑定模块。
例如,标注解析单元211可以自动将如下后台事件代码(代码段来自后续的后台事件描述模块22)中的operate(property)按钮单击操作“onclick”(前台事件)与事件方法“do”(后台事件)进行解析:
网页元素操作单元212,该单元将根据网页上的网页元素标识property来建立网页元素索引,并使用JavaScript代码将所有的网页元素操作功能进行封装。
用户通过用户界面单元定义的各种操作,均可以调用网页元素操作单元中封装的网页元素操作功能进行实现。网页元素操作单元212把网页上所有的网页元素的property做成一个列表,其他模块想操作哪个网页元素,给出property,网页元素操作单元212就在这个列表中进行查找,方便地找到想要的网页元素。可以实现例如:设置文本框组件的显示内容、弹出提示框、刷新页面等功能。同样地,为了实现某种后台事件,需要对网页上的网页元素进行操作,这样就必须要用到网页元素操作单元中的具体操作功能,网页元素操作单元212能够让二次开发人员在编写后台事件时,能方便地调用网页元素。
网页元素与后台事件绑定单元213,该单元将网页元素的前台事件和后台事件进行绑定,采用JavaScript代码进行统一封装,来实现响应机制。当用户在浏览器1网页上与网页元素进行互动时,即可触发对应的后台事件,即当某网页元素的前台事件触发时,网页元素与后台事件绑定单元213自动调用该网页元素的前台事件绑定的后台事件。
具体地,在网页元素操作单元212中,定义了这样一个函数:
getPageElement(property),
这个函数是根据property来获得具体网页元素的。网页元素与后台事件绑定单元213接收到标注解析单元211传递过来的property、以及前台事件与后台事件的对应信息,然后通过property在网页元素操作单元212中找到对应的网页元素,再将网页元素的前台事件和后台事件进行绑定。
可见,本发明的便于二次开发的信息管理***,通过JavaScript代码将网页元素操作功能进行了封装,并将网页元素的前台事件与后台事件进行了绑定,只需编写新的网页和其对应的后台事件描述类,就能自动完成网页的二次开发。也就是说,每当创建新的用户页面时,开发人员只需编写其浏览器网页的用户界面和该页面相对应的后台事件描述类即可,往往几十行代码即可完成一个新网页的开发,开发人员只要掌握Java语言即可进行二次开发。
如图3所示,本发明一种基于便于二次开发的信息管理***的开发方法包括以下步骤:
步骤S1、创建浏览器网页或在浏览器网页上定义新的网页元素;
即在本发明的便于二次开发的信息管理***的浏览器1的网页上增加新的网页元素或设计一个新的页面。
步骤S2、根据新定义的网页元素增加对应的后台事件描述,用于描述该网页元素对应的后台事件;
即在后台事件描述模块22中增加对应的后台事件描述,如果是在原来的网页上增加一个新的网页元素,则在原网页对应的后台事件描述类中增加该新的网页元素对应的后台事件描述;如果是新设计一个页面,则在后台事件描述模块22中增加一个对应的后台事件描述类。用于描述该网页上的网页元素该采取何种事件响应方法。
步骤S3、定义该后台事件与数据库进行通讯的数据库接口代码并连接到数据库。
显然,页面模型是本发明方法的核心部分,所有来自网页的操作响应、前台后台事件处理的功能都在页面模型中完成。开发人员只需编写新的网页和其对应的后台事件描述类,就能自动完成网页的二次开发,往往几十行代码即可完成一个新网页的开发,开发人员只要掌握Java语言即可进行二次开发。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种便于二次开发的信息管理***,包括浏览器,服务器和数据库,其特征在于,所述浏览器还包括用于定义网页元素及其网页元素标识的用户界面单元;所述服务器包括:
后台事件描述模块,设置有后台事件描述代码,用于对网页元素对应的各种后台事件进行描述,形成针对每个浏览器网页的后台事件描述类;
页面模型模块,用于对网页元素操作功能进行封装,并解析后台事件描述代码,实现对网页元素的前台事件与后台事件的自动绑定,形成页面模型类;
和数据库接口模块,用来实现所述后台事件描述模块与所述数据库的数据交互;
其中,所述页面模型模块包括:
标注解析单元,用于解析所述后台事件描述模块中的后台事件描述代码,识别网页元素标识,以及前台事件与后台事件的对应信息;
网页元素操作单元,用于将网页元素操作功能进行封装;
网页元素与后台事件绑定单元,用于接收所述标注解析单元解析出的网页元素标识、以及前台事件与后台事件的对应信息,从网页元素操作单元中找到对应的网页元素,再将该网页元素的前台事件和后台事件进行绑定;
所述的网页元素操作功能是使用代码去控制的动作,所述前台事件指的是用户在交互过程中,对网页上面的网页元素进行主动的行为,所述后台事件是针对前台事件而产生的具体动作方法。
2.根据权利要求1所述的信息管理***,其特征在于,所述网页元素操作单元将网页元素以网页元素标识进行识别,并以网页元素标识来建立网页元素索引,所述浏览器和后台事件描述模块需要操作哪个网页元素,则所述网页元素操作单元就根据网页元素索引进行查找,方便地找到需要的网页元素并进行响应。
3.根据权利要求1所述的信息管理***,其特征在于,所述网页元素与后台事件绑定单元还用于当网页元素的前台事件触发时,自动调用该网页元素的前台事件绑定的后台事件。
4.根据权利要求1-3任一权利要求所述的信息管理***,其特征在于,所述页面模型模块由一个Java页面模型类实现,所述后台事件描述模块包括至少一个Java后台事件描述类,并且所有的后台事件描述类都是所述页面模型类的继承类。
5.根据权利要求4所述的信息管理***,其特征在于,所述将网页元素操作功能进行封装,所述对网页元素的前台事件和后台事件的自动绑定,是利用JavaScript脚本语言实现的。
6.一种基于权利要求1-5所述的信息管理***的开发方法,用于对所述信息管理***进行二次开发,其特征在于,包括步骤:
步骤S1、创建浏览器网页或在浏览器网页上定义新的网页元素;
步骤S2、根据新定义的网页元素增加对应的后台事件描述,用于描述该网页元素对应的后台事件;
步骤S3、定义该后台事件与数据库进行通讯的数据库接口代码并连接到数据库。
7.根据权利要求6所述的开发方法,其特征在于,如果是在原来的网页上增加一个新的网页元素,则在原网页对应的后台事件描述类中增加该新的网页元素对应的后台事件描述;如果是创建新的浏览器页面,则增加一个对应的后台事件描述类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310332192.1A CN103399746B (zh) | 2013-08-01 | 2013-08-01 | 一种便于二次开发的信息管理***及开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310332192.1A CN103399746B (zh) | 2013-08-01 | 2013-08-01 | 一种便于二次开发的信息管理***及开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103399746A CN103399746A (zh) | 2013-11-20 |
CN103399746B true CN103399746B (zh) | 2017-02-15 |
Family
ID=49563380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310332192.1A Active CN103399746B (zh) | 2013-08-01 | 2013-08-01 | 一种便于二次开发的信息管理***及开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103399746B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399181A (zh) * | 2017-02-08 | 2018-08-14 | 上海格尔软件股份有限公司 | 一种用于将数据与html网页元素绑定的方法 |
CN106874001A (zh) * | 2017-02-17 | 2017-06-20 | 济南浪潮高新科技投资发展有限公司 | 一种脚本封装方法和装置以及脚本运行方法和装置 |
CN111352742B (zh) * | 2018-12-21 | 2024-02-09 | 三六零科技集团有限公司 | 一种基于app组件化的信息传递方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212536B1 (en) * | 1998-01-08 | 2001-04-03 | International Business Machines Corporation | Method for generating web browser sensitive pages |
CN101593207A (zh) * | 2009-07-06 | 2009-12-02 | 孟智平 | 一种构造和生成网页的方法及*** |
CN101625696A (zh) * | 2009-08-03 | 2010-01-13 | 孟智平 | 一种构造和生成网页中视频元素的方法及*** |
-
2013
- 2013-08-01 CN CN201310332192.1A patent/CN103399746B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于MVC模式的通用Web软件***开发框架设计与实现;王新;《中国优秀硕士学位论文全文数据库信息科技辑》;20070915(第03期);第6-8、12-20、40-56页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103399746A (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096056B (zh) | 一种基于分布式的舆情数据实时采集方法和*** | |
CN110442816A (zh) | 网页表单配置方法、装置及计算机可读存储介质 | |
CN102567539B (zh) | 一种web智能报表的实现方法和*** | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫*** | |
CN108694214A (zh) | 数据报表的生成方法、生成装置、可读介质及电子设备 | |
CN109522018A (zh) | 页面处理方法、装置及存储介质 | |
CN103473108A (zh) | 一种Java代码生成方法 | |
CN101165685A (zh) | 用于生成动态网页的方法及装置 | |
CN104461531B (zh) | 一种报表***自定义函数的实现方法 | |
CN101382893B (zh) | 一种基于Web服务的构件在线组装方法 | |
CN107368346A (zh) | 一种基于元数据和脚本引擎的代码生成方法及装置 | |
CN103019928A (zh) | 一种自动化测试方法和*** | |
CN103440151A (zh) | 一种动态加载Web页面的方法和装置 | |
US20150089415A1 (en) | Method of processing big data, apparatus performing the same and storage media storing the same | |
CN106407170A (zh) | 数据报表快速生成方法及*** | |
CN102520966A (zh) | 一种代码提示方法和装置 | |
CN103488738A (zh) | 一种自动实现java对象及数据表sql文件的方法及*** | |
CN104598570A (zh) | 资源的抓取方法及装置 | |
CN103399746B (zh) | 一种便于二次开发的信息管理***及开发方法 | |
CN107256144A (zh) | 前后台代码自动生成方法、终端及计算机可读存储介质 | |
CN114398138A (zh) | 界面生成方法、装置、计算机设备和存储介质 | |
CN102306163A (zh) | 一种基于b2b平台的动态集成技术 | |
CN102486731B (zh) | 增强软件的软件调用栈的可视化的方法、设备和*** | |
CN112015400B (zh) | 一种将图形化代码块转换成可执行程序的解析方法 | |
CN103823855B (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Floor 7, Ruili Building, No. 96, Huaxing Road, Xihu District, Hangzhou, Zhejiang Province, 310012 Patentee after: Zhejiang Zheda Wangxin Software Industry Group Co.,Ltd. Address before: Floor 7, Ruili Building, No. 96, Huaxing Road, Xihu District, Hangzhou, Zhejiang Province, 310012 Patentee before: INSIGMA TECHNOLOGY CO.,LTD. |