CN108595479B - 基于统一Web出入口的Web请求处理方法 - Google Patents
基于统一Web出入口的Web请求处理方法 Download PDFInfo
- Publication number
- CN108595479B CN108595479B CN201810203269.8A CN201810203269A CN108595479B CN 108595479 B CN108595479 B CN 108595479B CN 201810203269 A CN201810203269 A CN 201810203269A CN 108595479 B CN108595479 B CN 108595479B
- Authority
- CN
- China
- Prior art keywords
- class
- web
- web request
- background
- name
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了c#下基于统一Web出入口的Web请求处理方法,包括:对于任何Web请求,首先通过作为Web应用前后台唯一数据交互接口的Web出入口限制器进行接收;对所述Web请求进行解析,生成此次Web请求期望访问的类名、方法名及携带的参数;判定所述Web请求所涉及到的后台类是否需要进行身份验证以及验证用户是否具有可访问身份;若身份验证通过,则转入S4,若身份验证不通过,则通过所述Web出入口限制器向前台进行信息反馈;利用类索引及方法索引,通过S2中解析出的类及方法名,将所述Web请求分发到具体的后台方法,并为其赋予S2中解析出的参数;后台执行所述Web请求并将运行结果通过所述Web出入口限制器返还前台。
Description
技术领域
本发明属于数据通信或数据处理技术领域,特别涉及一种基于统一Web出入口的Web请求处理方法。
背景技术
网络应用开发及后台服务搭建是在互联网或局域网中,由一台服务器提供主要服务,为网络环境中其他电脑、手机或平板等接入设备提供数据服务、业务处理等技术,是当前互联网领域的支柱技术。
基于.Net框架的网络应用及后台服务,因具有较高的稳定性及安全性而受到青睐。目前,基于.Net的网络应用开发以及后台服务搭建方法主要为两类,一类为ASP.NETWeb Forms,另一类为MVC。
ASP.NET Web Forms,主要基于.aspx文件进行web应用搭建,为一种相对较老的技术。其问题在于,前后台联系过于紧密;后台层次也不够清晰;执行效率低;已经濒于淘汰。
MVC,相较于ASP.NET Web Forms,对前后台进行了一定程度的分离,同时对后台做了层次上的切割,但问题依然很大。首先,View层依然依赖于动态渲染技术,这种前后台的分离,更多的是文件上的、形式上的;随着前端技术的发展,更多的前端人员更注重于ajax+前端效果的形式,这种形式上的分离,对于实际工作中的帮助并不大。其次,Model层使用的依赖于linq的数据库访问方法效率低,实体类的构建方式对于需要频繁数据交互的网页应用,尤其在交互字段多变的情况下,灵活度极低。另外,整体的linq数据库访问、动态页面渲染、反射机制的构建也在一定程度上影响了执行效率。
总体而言,MVC对程序的硬性切割并没有在实质上对网络应用的开发提供太大的帮助,而执行效率却依然不高。
综上所述,在.Net环境下,进入网络应用时代后,随着网络的大规模普及、互联网开发从业人员分工的细化,完全基于.Net所提供的框架进行的网络应用开发以及后台服务构建手段已经无法满足实际生产环境日益复杂的要求,网络应用面临新的局面,敏捷开发、应用效率的提升、前后台分离等成为一个需要持续优化的问题。
发明内容
本发明要解决的技术问题是,在c#语言环境下提供一种基于统一Web出入口的Web请求处理方法,实现前后台更彻底的分离,提高执行效率及网站应用或后台服务构建效率,让程序人员可以分工明确、更加简单的搭建出更加高效的系统。
为解决上述技术问题,本发明所提供的基于统一Web出入口的Web请求处理方法包括以下步骤:
S1:对于前台所发起的任何Web请求,其首先通过构建的作为Web应用前后台唯一数据交互接口的Web出入口限制器进行接收;
S2:对所述Web请求进行解析,生成此次Web请求期望访问的类名、方法名及携带的参数;
S3:判定所述Web请求所涉及到的后台类是否需要进行身份验证以及验证用户是否具有可访问身份;若身份验证通过,则转入S4,若身份验证不通过,则通过所述Web出入口限制器向前台进行信息反馈;
S4:利用类索引技术及方法索引技术,通过S2中解析出的类及方法名,将所述Web请求分发到具体的后台方法,并为其赋予S2中解析出的参数;
S5:后台执行所述Web请求并将运行结果通过所述Web出入口限制器返还前台。
本方法用于进行Web请求处理、网络应用开发、后台服务搭建或网站构建等,本方法的主要优点如下:
1.实现更彻底的前后端分离。本方法使得后端更倾向于服务化(或者说实现后台的纯服务化)和模块化,即为前台纯静态页面提供数据服务。前台页面可以完全静态化,使前台人员可以集中更多精力处理页面效果,不需再向动态页面转换,利于团队分工合作及平衡前后台工作压力。
2.相比与一般的堆叠“一般处理文件”构建网站应用的方法,本方法只需要一个统一的“一般处理文件”作为入口。通过统一化的web出入口设置,简化了后台搭建流程,提高了后台对数据的统一化处理能力,且一次构建完成后,后期一般不需对入口文件进行反复维护,提高了开发效率及网站可维护性。
3.相比于使用MVC的网站构建方法,本方法无大量冗余的框架约束及依赖,网站更轻量化。
4.通过分发机制,提高了应用透明度,简化了调试、前后台数据交互流程。
5.相比于MVC中使用反射构建路由的机制,本方法的类索引技术及方法索引技术采用轻框架概念,提高了.Net框架下网络应用运行效率,并实现了应用的瘦身,执行效率更高。
6.相比于传统的网站构建方法,本方法使用的参数解析方式,使得程序的可扩展性更强,参数的增减对程序的影响更低。
综上,本方法能够提高团队开发效率以及系统运行效率。
附图说明
图1是本发明具体实施方式的流程示意图。
图2是本发明具体实施方式中对Web请求进行身份验证的流程示意图。
图3是本发明具体实施方式中对Web请求进行解析以及分发的流程示意图。
具体实施方式
该基于统一Web出入口的Web请求处理方法包括以下步骤:
S1:构建作为Web应用前后台唯一数据交互接口的Web出入口限制器,对于前台所发起的任何Web请求,其首先通过所述Web出入口限制器进行接收。
S2:对所述Web请求进行解析,包含对类名、方法名的解析以及对参数的解析,生成此次Web请求期望访问的类名、方法名及携带的参数。
所有web请求均使用json字符串形式,并满足如下格式:
{class_:所访问类的名称,method:所访问方法的名称,paras:{key:value,key:value}},即应包含class_、method及para三个基本参数。其中,class_即需要访问的类名,method即要访问的方法名,para则以json字符串的形式,包含本次访问的所有其他要求的参数,对web请求的解析包括解析出class、method关键字对应的内容及将para关键字对应的内容反序列化为dictionary类型。此处体现出了本Web请求处理方法所使用的解析方法。
S3:判定所述Web请求所涉及到的后台类是否需要进行身份验证以及验证用户是否具有可访问身份;若身份验证通过,则转入S4,若身份验证不通过,则通过所述Web出入口限制器向前台进行信息反馈。
S4:通过类索引技术及方法索引技术(首先进行类索引,然后进行方法索引),通过S2中解析出的类及方法名,将所述Web请求分发到具体的后台方法,并为其赋予S2中解析出的参数(即前述para关键字对应内容反序列化出的dictionary参数)。本方法支持在不使用反射的情况下,由Web请求发起对后台类以及方法的定向访问请求,从而将经过Web出入口限制器的Web请求根据索引参数做同一分发。
S5:后台执行所述Web请求并将运行结果通过所述Web出入口限制器返还前台。
如图2所示,在S3中,判定所述Web请求所涉及到的后台类是否需要进行身份验证以及验证用户是否具有可访问身份具体为:
首先通过配置文件中配置的无需权限验证的类名(本步骤中包含了webconfig中所设定的公用类字段(PublicClass)),确定是否需要进行身份验证。若无需进行身份验证,则直接放行本次Web请求进入S4;如需进行身份验证,则通过缓存中用户类权限配置字段,确定用户是否具有该类的访问权限(即身份验证是否通过),进而决定是否放行本次Web请求,即:若身份验证通过,则转入S4,若身份验证不通过,则通过所述Web出入口限制器向前台进行信息反馈,具体的反馈信息可以根据需要设置,例如可以为告知身份验证不通过的信息。通过S3,可以实现对Web请求进行身份识别以及过滤,实现身份验证不通过情况下的Web请求截断,并确定Web请求是否可以进入到S4并被分发到后台。此处体现出了本Web请求处理方法所使用的权限控制方法。
如图3所示,在S4中,对Web请求的分发包括对类名及与该类名对应的类的实体间的索引、对方法名及与该方法名对应的实体间的索引。
类索引技术用于由web请求发起对类的访问,是指可以通过索引的方式,使用预定义的类名,直接调用出类的实体的一系列接口、类等,其主要原理为接口可以访问实现其的所有类。
类索引技术具体包括以下步骤:
S11:构建所有居于后台并可被前台访问的类的顶级接口(IWebEntrance)和主父类(MainClass),所有可被网络访问的后台类,均需要继承该主父类及实现此顶级接口和接口中定义的接口方法。
S12:在主父类中预先做好后台类名与其实体的索引对应关系,即使用两个数组,分别存储类的字符串型名称及类的接口型实例。
S13:通过以上步骤,在请求分发器中,使用接口,通过类名与实体在主父类中的索引关系,用类的字符串名实例化类,实现通过接口对实现接口类的访问(即索引式访问)。
通过类索引技术可以让解析和请求分发过程使用接口,通过类的字符串名,实例化后台所有类。
方法索引技术用于由web请求发起对方法的访问,是指可以通过索引的方式,使用预定义的方法名,直接调用出方法的实体并为该方法实体传入参数的一系列接口、类、委托等。其主要原理为通过委托,可以在一个类中访问另一个类中的方法,并向其中传递指定数量的参数。通过字典类型,可以对方法需要的参数进行无限扩容,而无需改变引用方法的赋值形式。
S21:方法索引技术具体包括以下步骤:
构建所有居于后台并可被前台访问的类的顶级接口(IWebEntrance)、主父类(MainClass)以及用于访问类中方法并向其中赋值的委托ReturnMethod。
S22:接口中定义有接口方法,用于提取类中具体的方法,接口方法应包含一个字符型参数,即要访问的方法名。所有可被网络访问的类中,都应包含对接口方法的实现,而该实现,则包含了类中方法与网络可访问方法名的映射关系。
S23:在可被Web访问的类中,在方法体中预先构建好方法名与方法实体的索引对应关系,即两个数组,分别存储方法的字符串名称及委托类型的方法实体。
S24:参数通过委托,以字典的形式传入方法实体中,运行结果以json字符串的形式进行返还,实现通过委托及所实现接口的方法对目标方法的访问(索引式访问)。
通过方法索引技术可以让解析和请求分发过程使用接口方法调取类中具体方法的实体,并使用字典类型向方法实体中传入无限量的参数。
在本实施方式中,所述Web出入口限制器作为Web应用唯一的前后台数据交互文件,为请求进入和数据流出的唯一接口。
本实施方式中,Web出入口限制器为站点下唯一的一般处理程序文件,并需要引用后台统一的父级命名空间,该一般处理程序文件中应包含上述步骤所使用的解析方法、权限控制方法、类索引技术及方法索引技术,所有网络请求的url均指向于该文件,从而通过Web出入口限制器可以统一进行数据的过滤、用户身份验证以及模块权限验证等。
Web出入口限制器作为前后数据交互闸口,可实现前后台的彻底分离。前台的请求统一流入该文件后,最终进入所需要请求的后台方法。由于是数据交互的唯一闸口,在该限制器中,还可以进行很多统一性的处理工作,如对所有访问进行合法性检测、用户访问轨迹追踪、统一的数据返还格式处理等。
下面以在使用本方法构建的网站应用中进行登录为例,对数据流进行详细说明。
情景:当用户在前台进行登录操作时,前台需调用后台public类中的login方法进行登录操作。其中,public类为公共类,即用户以游客身份也可以访问public中的各个方法。
构建:
1.接口IWebEntrance中,有接口方法string GetMyMethod(string method),接口方法的具体实现的作用为,通过该接口方法(GetMyMethod)返回实现本接口(IWebEntrance)的具体类(如public类)中,与接口方法传入参数相对应的方法实体(如login方法)。
2.主父类MainClass中,预构建了泛型数组,list<string>ClassNames,其中包含了可被网络访问的所有类的字符型名称。
3.主父类MainClass中,与构建了IWebEntrance数组,IWebEntrance[]Classes,其中包含了可被网络访问的所有类的字符型实例。并且该实例的索引值应与上述2中类名称的索引值相同。
4.public类需继承主父类MainClass类,并实现了接口IWebEntrance及接口方法string GetMyMethod(string method)。GetMyMethod的具体实现方式为:
a.在方法体中构建一个泛型数组list<string>methodnames,其中包含类中所有可被网络访问的方法的方法名。
b.在方法体中构建一个委托数组ReturnMethod[]retu,其中包含类中所有可被网络访问的方法的实体,并且索引值与methodnames数组中方法名的索引值对应。
c.通过委托delegate string ReturnMethod(Dictionary<string,string>paras);将参数以字典方式传入方法体,并实现在接口方法中返回方法实体的功能。
具体请求:
1.用户点击登录后,js将所有参数以json字符串的形式打包(具体为:{class_:public,method:login,paras:{usname:admin,pasword:123}}),使用ajax方式发送至统一web出入口文件(webEntrance.ashx)。
2.webEntrance.ashx中的解析方法,将本次参数解析为字符串类型的类名(class_对应的public)、字符串类型的方法名(method对应的login),并将paras对应的参数反序列化为字典(dictionary)类型。
3.通过检测配置文件的“PublicClass”字段中是否包含本次访问的类名,决定是否需要验证用户session信息,本次访问的public类,其类名应包含在“PublicClass”字段中,无需进行身份验证。
4.通过接口IWebEntrance及主父类MainClass中的ClassNames与Classes间类名的索引关系实例化本次请求的类public类。
5.通过接口方法GetMyMethod,调用本次请求的方法login方法,并以dictionary的形式,将参数usname和pasword传入login(dictionary<string,string>para)中,并接受返回值。
6.返回值通过webEntrance.ashx返回给本次请求的ajax方法。
7.本次请求结束。
Claims (3)
1.基于统一Web出入口的Web请求处理方法,包括以下步骤:
S1:对于前台所发起的任何Web请求,其首先通过构建的作为Web应用前后台唯一数据交互接口的Web出入口限制器进行接收;
S2:对所述Web请求进行解析,生成此次Web请求期望访问的类名、方法名及携带的参数;
S3:判定所述Web请求所涉及到的后台类是否需要进行身份验证以及验证用户是否具有可访问身份;若身份验证通过,则转入S4,若身份验证不通过,则通过所述Web出入口限制器向前台进行信息反馈;
S4:利用类索引技术及方法索引技术,通过S2中解析出的类及方法名,将所述Web请求分发到具体的后台方法,并为其赋予S2中解析出的参数;
所述类索引技术包括以下步骤:
S11:构建所有居于后台并可被前台访问的类的顶级接口和主父类;
S12:在主父类中预先做好后台类名与其实体的索引对应关系,即使用两个数组,分别存储类的字符串型名称及类的接口型实例;
S13:通过以上步骤,在请求分发器中,使用接口,通过类名与实体在主父类中的索引关系,用类的字符串名实例化类;
所述方法索引技术包括以下步骤:
S21:构建所有居于后台并可被前台访问的类的顶级接口、主父类以及用于访问类中方法并向其中赋值的委托;
S22:接口中定义有接口方法,用于提取类中具体的方法;
S23:在可被Web访问的类中,在方法体中预先构建好方法名与方法实体的索引对应关系,即两个数组,分别存储方法的字符串名称及委托类型的方法实体;
S24:参数通过委托,以字典的形式传入方法实体中,运行结果以json字符串的形式进行返还;
S5:后台执行所述Web请求并将运行结果通过所述Web出入口限制器返还前台。
2.根据权利要求1所述的基于统一Web出入口的Web请求处理方法,其特征在于:在S3中,首先通过配置文件中配置的无需权限验证的类名,确定是否需要进行身份验证;如需进行身份验证,则通过缓存中用户类权限配置字段,确定用户是否具有该类的访问权限,进而决定是否放行本次Web请求。
3.根据权利要求1至2中任一项所述的基于统一Web出入口的Web请求处理方法,其特征在于:所述Web出入口限制器为站点下唯一的一般处理程序文件,并需要引用后台统一的父级命名空间,该一般处理程序文件中应包含上述步骤所使用的解析方法、权限控制方法、类索引技术及方法索引技术。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810203269.8A CN108595479B (zh) | 2018-03-13 | 2018-03-13 | 基于统一Web出入口的Web请求处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810203269.8A CN108595479B (zh) | 2018-03-13 | 2018-03-13 | 基于统一Web出入口的Web请求处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595479A CN108595479A (zh) | 2018-09-28 |
CN108595479B true CN108595479B (zh) | 2021-07-27 |
Family
ID=63626201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810203269.8A Active CN108595479B (zh) | 2018-03-13 | 2018-03-13 | 基于统一Web出入口的Web请求处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595479B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491802A (zh) * | 2018-10-10 | 2019-03-19 | 福建天泉教育科技有限公司 | 一种基于Unity的RESTFul网络请求的方法及适配器 |
CN111158646A (zh) * | 2019-12-17 | 2020-05-15 | 广西交通设计集团有限公司 | 一种sql轻量化持久层框架及配置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697119A (zh) * | 2009-10-12 | 2010-04-21 | 南京联创科技集团股份有限公司 | 基于JavaBean类导入格式取代传统URL访问地址的实现方法 |
CN102609278A (zh) * | 2011-12-06 | 2012-07-25 | 北京航空航天大学 | 软件分发方法和装置 |
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN104639539A (zh) * | 2015-01-27 | 2015-05-20 | 深圳市汇朗科技有限公司 | 接口调用的方法和装置 |
CN105827663A (zh) * | 2016-06-02 | 2016-08-03 | 中国联合网络通信集团有限公司 | 访问控制方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120246143A1 (en) * | 2011-03-24 | 2012-09-27 | Lee Roberts | Method for redirecting a web browser based on the keywords used in a search engine |
-
2018
- 2018-03-13 CN CN201810203269.8A patent/CN108595479B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697119A (zh) * | 2009-10-12 | 2010-04-21 | 南京联创科技集团股份有限公司 | 基于JavaBean类导入格式取代传统URL访问地址的实现方法 |
CN102609278A (zh) * | 2011-12-06 | 2012-07-25 | 北京航空航天大学 | 软件分发方法和装置 |
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN104639539A (zh) * | 2015-01-27 | 2015-05-20 | 深圳市汇朗科技有限公司 | 接口调用的方法和装置 |
CN105827663A (zh) * | 2016-06-02 | 2016-08-03 | 中国联合网络通信集团有限公司 | 访问控制方法和系统 |
Non-Patent Citations (3)
Title |
---|
一种快速开发Web应用程序方法的研究;徐长盛等;《计算机工程与设计》;20041228(第12期);第2237-2239页 * |
基于Spring的MVC框架实现Web应用系统设计与实现;卜庆禹;《数码世界》;20170401(第04期);第21-22页 * |
用面向服务架构实现装备管理信息系统集成;梁冬等;《微计算机信息》;20060730(第21期);第13-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108595479A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688120B (zh) | 基于改进RBAC模型及Spring Security框架的动态权限管理系统 | |
CN102222005B (zh) | 面向业务模型的软件运行平台、运行方式及一种开发方法 | |
US11182746B2 (en) | Systems and methods for integrating third-party services with a client instance | |
WO2018014657A1 (zh) | 一种统一门户方法、装置及系统 | |
CN103299594B (zh) | 用于可扩展的认证框架的系统和方法 | |
CN110188573B (zh) | 分区授权方法、装置、设备及计算机可读存储介质 | |
CN102844756A (zh) | 具有基于角色的访问控制的计算机关系数据库方法和系统 | |
CN103401945B (zh) | 一种服务组合动态重构方法 | |
CN110162559B (zh) | 一种基于通用json同步和异步数据api接口调用的区块链处理方法 | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
CN103929473A (zh) | 使用单一app程序访问包含个性化数据分布式存储的多子系统和公共子系统的方法和系统 | |
CN113590576A (zh) | 数据库参数调整方法、装置、存储介质以及电子设备 | |
CN108595479B (zh) | 基于统一Web出入口的Web请求处理方法 | |
CN101771724B (zh) | 异构分布式信息集成方法、装置及系统 | |
CN102255969B (zh) | 一种基于表述性状态转移的网络服务安全模型 | |
Ranawaka et al. | Custos: Security middleware for science gateways | |
Deyi et al. | Analysis of hot topics in cloud computing | |
CN113010561A (zh) | 基于超级账本的数据获取方法、装置、计算机系统 | |
Sazonov et al. | Digital object architecture as an approach to identifying internet of things devices | |
Koundourakis et al. | iXen: context-driven service oriented architecture for the internet of things in the cloud | |
KR102122176B1 (ko) | 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법 | |
Zacharia et al. | iZen: secure federated service oriented architecture for the Internet of Things in the cloud | |
CN106445892B (zh) | 一种文档汇编方法以及系统 | |
CN106656965B (zh) | 基于分布式云计算的通用客户端管理系统 | |
CN113821560A (zh) | 一种基于dap平台的大数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |