CN106599156B - 一种基于struts2拦截器的动态拦截器管理方法 - Google Patents

一种基于struts2拦截器的动态拦截器管理方法 Download PDF

Info

Publication number
CN106599156B
CN106599156B CN201611118032.7A CN201611118032A CN106599156B CN 106599156 B CN106599156 B CN 106599156B CN 201611118032 A CN201611118032 A CN 201611118032A CN 106599156 B CN106599156 B CN 106599156B
Authority
CN
China
Prior art keywords
blocker
customized
url
web
memory
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
Application number
CN201611118032.7A
Other languages
English (en)
Other versions
CN106599156A (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.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology 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 G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201611118032.7A priority Critical patent/CN106599156B/zh
Publication of CN106599156A publication Critical patent/CN106599156A/zh
Application granted granted Critical
Publication of CN106599156B publication Critical patent/CN106599156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

本发明涉及web项目领域,特别是一种基于struts2拦截器的动态拦截器管理方法。本发明首先创建一个struts2拦截器,用于执行自定义的拦截器组;拦截器组是自定义的一个具有多种属性的抽象类,包括优先级,拦截url;然后创建加载器模块,用于动态加载web项目,并在线动态更新拦截器组中的拦截器。通过自定义的动态拦截器,可以在线升级web项目中的拦截模块,提供web项目安全性和提供服务稳定性;方便扩展,提高开发人员的开发效率。

Description

一种基于struts2拦截器的动态拦截器管理方法
技术领域
本发明涉及web应用领域,特别是一种基于struts2拦截器的动态拦截器管理方法。
背景技术
Web应用中,需要对接口进行一些公共的操作,例如参数校验,权限控制等等。一般是通过新建一个拦截器进行统一的处理。拦截器的使用过程中还是会有遇到以下的一些问题:
一是每增加一个拦截器,需要重新修改配置文件,增加对应的拦截器配置信息。
二是增加了拦截器后需要重启web应用,拦截器才能正常的执行拦截的工作。
发明内容
本发明解决的技术问题在于提供一种基于struts2拦截器的动态拦截器管理方法,解决了web应用在线更新,减少web应用的运维难度,提高web应用开发效率。
本发明解决上述技术问题的技术方案是:
所述的的方法具体包括以下步骤:
步骤1:创建一个struts2拦截器,并配置好对应的struts配置文件,web启动时,拦截器能正常运行;
步骤2:创建自定义的拦截器抽象类;
步骤3:根据步骤2的抽象类,实现具体的拦截逻辑;
步骤4:创建加载模块,自动扫描web项目下特定包路径下的文件加载到内存;
步骤5:启动web项目,加载模块加载所有自定义拦截器到内存中;
步骤6:调用web应用接口,拦截器的调用模块获取内存中所有自定义拦截器,并根据优先级排序;
步骤7:循环每个拦截器,根据接口url判断是否匹配自定义拦截器url,若匹配,执行步骤8,否则执行步骤9;
步骤8:执行拦截器逻辑,若执行通过,返回true,否则抛错;
步骤9:执行原有接口逻辑,返回给用户;
步骤10:判断接口是否更新拦截器,若是执行步骤11,否则,执行步骤12;
步骤11:加载模块扫描指定包路径下文件,加载到内存中;
步骤12:结束。
所述的拦截逻辑是当需要拦截的接口url为*时拦截所有的接口。
所述的加载模块在web项目启动时执行,扫描指定包路径下的代码文件,判断是否自定义拦截器的实现类,若是则添加到内存中,否则,继续扫描;
首次加载完后,接口调用更新时,调用加载模块,对特定包路径代码文件扫描更新;更新前不会影响原来在内存中的拦截器;在更新时保证web应用能正常的运作、提供服务。
所述的优先级,是自定义的拦截器的属性,优先级为0,代表优先级最小,数字越大,优先级越大,先执行优先级高的拦截器。
拦截器中配置需要拦截的url,当匹配到正确的url才进行拦截,其余的直接返回;当配置为*时,拦截所有的url。
本发明解决了解决了web应用在线更新,解决了web应用在线更新,提高web应用开发效率。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法拦截器工作流程图。
具体实施方法
如图1所示,本发明首先启动web应用,加载代码中拦截器实现类,实现类再进行工作:
创建自定义的拦截器
添加自定义的拦截器模板
Web应用启动时候扫描特定包中实现代码添加到内存中

Claims (7)

1.一种基于struts2拦截器的动态拦截器管理方法,其特征在于:所述的方法具体包括以下步骤:
步骤1:创建一个struts2拦截器,并配置好对应的struts配置文件,web启动时,拦截器能正常运行;
步骤2:创建自定义的拦截器抽象类;
步骤3:根据步骤2的抽象类,实现具体的拦截逻辑;
步骤4:创建加载模块,自动扫描web项目下特定包路径下的文件加载到内存;
步骤5:启动web项目,加载模块加载所有自定义拦截器到内存中;
步骤6:调用web应用接口,拦截器的调用模块获取内存中所有自定义拦截器,并根据优先级排序;
步骤7:循环每个拦截器,根据接口url判断是否匹配自定义拦截器url,若匹配,执行步骤8,否则执行步骤9;
步骤8:执行拦截器的拦截逻辑,若执行通过,返回true,否则抛错;
步骤9:执行原有接口逻辑,返回给用户;
步骤10:判断接口是否更新拦截器,若是执行步骤11,否则,执行步骤12;
步骤11:加载模块扫描指定包路径下文件,加载到内存中;
步骤12:结束。
2.根据权利要求1所述的方法,其特征在于:所述的拦截逻辑是当需要拦截的接口url为*时拦截所有的接口。
3.根据权利要求1所述的方法,其特征在于:所述的加载模块在web项目启动时执行,扫描指定包路径下的代码文件,判断是否自定义拦截器的实现类,若是则添加到内存中,否则,继续扫描;
首次加载完后,接口调用更新时,调用加载模块,对特定包路径代码文件扫描更新;更新前不会影响原来在内存中的拦截器;在更新时保证web应用能正常的运作、提供服务。
4.根据权利要求2所述的方法,其特征在于:所述的加载模块在web项目启动时执行,扫描指定包路径下的代码文件,判断是否自定义拦截器的实现类,若是则添加到内存中,否则,继续扫描;
首次加载完后,接口调用更新时,调用加载模块,对特定包路径代码文件扫描更新;更新前不会影响原来在内存中的拦截器;在更新时保证web应用能正常的运作、提供服务。
5.根据权利要求1至4任一项所述的方法,其特征在于:所述的优先级,是自定义的拦截器的属性,优先级为0,代表优先级最小,数字越大,优先级越大,先执行优先级高的拦截器。
6.根据权利要求1至4任一项所述的方法,其特征在于:拦截器中配置需要拦截的url,当匹配到正确的url才进行拦截,其余的直接返回;当配置为*时,拦截所有的url。
7.根据权利要求5所述的方法,其特征在于:拦截器中配置需要拦截的url,当匹配到正确的url才进行拦截,其余的直接返回;当配置为*时,拦截所有的url。
CN201611118032.7A 2016-12-07 2016-12-07 一种基于struts2拦截器的动态拦截器管理方法 Active CN106599156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611118032.7A CN106599156B (zh) 2016-12-07 2016-12-07 一种基于struts2拦截器的动态拦截器管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611118032.7A CN106599156B (zh) 2016-12-07 2016-12-07 一种基于struts2拦截器的动态拦截器管理方法

Publications (2)

Publication Number Publication Date
CN106599156A CN106599156A (zh) 2017-04-26
CN106599156B true CN106599156B (zh) 2019-05-21

Family

ID=58596248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611118032.7A Active CN106599156B (zh) 2016-12-07 2016-12-07 一种基于struts2拦截器的动态拦截器管理方法

Country Status (1)

Country Link
CN (1) CN106599156B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107894896A (zh) * 2017-11-16 2018-04-10 青岛海信电器股份有限公司 一种远程协助的自动升级方法及设备
CN109286610B (zh) * 2018-08-23 2022-02-25 北京城市网邻信息技术有限公司 服务拦截装置、方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567534A (zh) * 2011-12-31 2012-07-11 凤凰在线(北京)信息技术有限公司 互动产品用户生成内容拦截系统及其拦截方法
CN104270403A (zh) * 2014-09-01 2015-01-07 江苏西贝电子网络有限公司 基于struts2框架的云平台信息web监控系统
CN103150155B (zh) * 2011-12-07 2016-08-03 金蝶软件(中国)有限公司 数据拦截方法和装置
CN106055385A (zh) * 2016-06-06 2016-10-26 四川大学 监控虚拟机进程的系统和方法、过滤page fault异常的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785459B2 (en) * 2011-08-22 2017-10-10 Red Hat Israel, Ltd. Managed network filter/forward programming in a virtualization system by an agent more privileged than the hypervisor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150155B (zh) * 2011-12-07 2016-08-03 金蝶软件(中国)有限公司 数据拦截方法和装置
CN102567534A (zh) * 2011-12-31 2012-07-11 凤凰在线(北京)信息技术有限公司 互动产品用户生成内容拦截系统及其拦截方法
CN104270403A (zh) * 2014-09-01 2015-01-07 江苏西贝电子网络有限公司 基于struts2框架的云平台信息web监控系统
CN106055385A (zh) * 2016-06-06 2016-10-26 四川大学 监控虚拟机进程的系统和方法、过滤page fault异常的方法

Also Published As

Publication number Publication date
CN106599156A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN107979508B (zh) 微服务测试方法及装置
US9286189B2 (en) Self-evolving computing service template translation
US20180165071A1 (en) Post-deployment modification of information-technology application using lifecycle blueprint
RU2734023C1 (ru) Способы для определения дескриптора (nsd) сетевой службы для сетевой службы (ns) и оркестратор (nfvo) виртуализации сетевых функций (nfv), использующий упомянутый дескриптор nsd
CN105164660A (zh) 基于云的服务设计承继
CN106599156B (zh) 一种基于struts2拦截器的动态拦截器管理方法
CN111801731B (zh) 语音控制方法、语音控制装置以及计算机可执行非易失性存储介质
CN114780080A (zh) 一种微前端集成方法、装置及监控方法
CN107301347A (zh) 一种基于静态分析获取Hbuilder App调用图的方法
CN111209052A (zh) 一种应用启动的方法及系统
CN110008665B (zh) 一种区块链的权限控制方法及装置
CN110262782A (zh) 软件系统的接口比对方法和装置
CN109783159A (zh) 基于配置信息的应用启动方法和装置
CN113518341B (zh) 一种eSIM码号管理方法及装置
CN109324856A (zh) 菜单处理方法、装置、计算机设备及存储介质
CN107547217B (zh) 路由器业务配置方法及路由器
CN111813836A (zh) 一种提高Ethereum区块链系统扩展性的方法
CN109660379B (zh) 一种网络方法和系统、及终端
CN107015787B (zh) 一种交互式应用框架设计的方法及装置
CN114493493A (zh) 决策引擎及决策引擎实现方法
CN109189718A (zh) 一种支持多种网络接口的套接字组件及方法
CN108595292A (zh) 一种系统的优化方法、移动终端及计算机存储介质
CN110505151B (zh) 流量转发方法、装置、设备及存储介质
US10657476B2 (en) Just in time compilation (JIT) for business process execution
KR102156656B1 (ko) 가상머신 스택 생성 시스템 및 방법

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
CB02 Change of applicant information

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Applicant before: G-Cloud Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant