公开/公告号CN106599156A
专利类型发明专利
公开/公告日2017-04-26
原文格式PDF
申请/专利权人 国云科技股份有限公司;
申请/专利号CN201611118032.7
申请日2016-12-07
分类号G06F17/30(20060101);G06F9/445(20060101);
代理机构广东莞信律师事务所;
代理人余伦
地址 523808 广东省东莞市松山湖科技产业园区松科苑14号楼
入库时间 2023-06-19 02:00:58
法律状态公告日
法律状态信息
法律状态
2019-05-21
授权
授权
2019-05-10
著录事项变更 IPC(主分类):G06F16/958 变更前: 变更后: 申请日:20161207
著录事项变更
2017-05-24
实质审查的生效 IPC(主分类):G06F17/30 申请日:20161207
实质审查的生效
2017-04-26
公开
公开
技术领域
本发明涉及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应用启动时候扫描特定包中实现代码添加到内存中
机译: 一种移动平台运行时动态链接库的管理方法及其系统,能够动态加载移动通信终端的移动平台模块
机译: 基于消费者订单的动态充电需求侧响应法和动态充电需求侧管理方法,需要侧面管理控制系统进行方法
机译: 一种基于动态标记语言元素的基于标记语言的页面中动态内容的激活方法