CN112329018A - 一种struts替换方法 - Google Patents
一种struts替换方法 Download PDFInfo
- Publication number
- CN112329018A CN112329018A CN202011198994.4A CN202011198994A CN112329018A CN 112329018 A CN112329018 A CN 112329018A CN 202011198994 A CN202011198994 A CN 202011198994A CN 112329018 A CN112329018 A CN 112329018A
- Authority
- CN
- China
- Prior art keywords
- struts
- project
- replacement
- creating
- class
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种Struts替换方法及装置,该方法包括:新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。该方案基于创建的工程及替换规则,实现框架级的自动替换,实现过程简单,能有效降低Struts替换成本。
Description
技术领域
本发明涉及web系统框架替换领域,尤其涉及一种Struts替换方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,Struts框架在实际应用中频频出现高危漏洞,基于Struts架构的网站安全受到威胁,针对Struts存在的问题,由于其替换成本高,目前只能不断打补丁包,以减少漏洞,然而这样没有从根本上解决问题,新的漏洞仍会不断出现。
发明内容
有鉴于此,本发明实施例提供了一种Struts替换方法,以解决现有直接替换Struts成本较高的问题。
第一方面,本发明实施例提供了一种Struts替换方法,包括:
新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;
在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
第二方面,本发明实施例提供了一种用于Struts替换的装置,包括:
工程创建模块,用于新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
规则定义模块,用于创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
在本发明实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面提供的Struts替换方法的步骤。
本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的Struts替换方法方法的步骤。
本发明实施例中,新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对各种外部请求进行注册,创建Struts基础类替换Struts中对应的ActionForm类和Action类,定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。从而可以将struts核心servlet转发的各种请求转变为符合Spring MVC标准的请求,从而实现框架级别的替换,提成成本低,且实现过程简单,引入新工程后,只需定义替换规则即可实现替换。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。
图1为本发明的一个实施例提供的一种Struts替换方法的流程示意图;
图2为本发明的一个实施例提供的一种Struts替换方法的另一流程示意图;
图3为本发明的一个实施例提供的自动替换工程替换流程示意图;
图4为本发明的一个实施例提供的一种用于Struts替换的装置的结构示意图;
图5为本发明的一个实施例提供的电子设备结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
目前,Struts框架在实际应用中频频出现高危漏洞,基于Struts架构的网站安全受到威胁,针对Struts存在的问题,由于其替换成本高,目前只能不断打补丁包,以减少漏洞,然而这样没有从根本上解决问题,新的漏洞仍会不断出现。
因此,本发明实施例提供一种Struts替换方法,新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对各种外部请求进行注册,创建Struts基础类替换Struts中对应的ActionForm类和Action类,定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。从而可以将struts核心servlet转发的各种请求转变为符合Spring MVC标准的请求,从而实现框架级别的替换,提成成本低,且实现过程简单,引入新工程后,只需定义替换规则即可实现替换。以下将结合附图通过多个实施例进行展开说明和介绍。
图1为本发明的一个实施例提供的一种Struts替换方法的流程示意图,参照图1,该方法包括:
S101、新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;
初始化Spring MVC后,指定Spring MVC配置文件路径(SpringMVC-servlet.xml),对旧工程Struts的配置文件进行解析,读取旧工程文件中的配置,将From和Action信息存至Map中,key值为path属性。
进一步的,在SpringMVC框架中对各个请求进行注册。
通过request.getServletPath方法获取所述Map中的Form类型;将前端传递至后台的请求数据封装至Form中;将Form存放至request请求对象中。
新建工程继承RequestMappingHandlerMapping,主要目的是将Contoller的带RequestMapping方法,添加到处理方法映射器和路径方法解决器中,即将上述Map中的Action信息注册到新建的Spring MVC。
可以理解的是,SpringMVC-servlet.xml配置包括:初始化自定义参数处理bean;使用<context:annotation-config/>标签激活那些已经在spring容器里注册过的bean上面的注解;使用<context:component-scan/>标签指定工程中bean的扫描路径;初始化文件上传的处理类;定义资源文件的路径。
可以理解的是,action属性中规定当提交Form表单时,向何处发送表单数据,action=url用来指定处理提交表单的格式,对应于一个URL地址。
S102、在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
创建ActionForm类和Action类,用于替换旧工程struts中的ActionForm和Action。
其中,ActionForm:无特殊意义,保持原工程没有编译错误
ValidatorForm:继承ActionForm,负责数据校验
Action:所有action的父类,负责调用Form的校验方法及执行旧工程的execute方法.
S103、新建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
具体的,定义替换规则(convert-rules.xml),用于替换Java中的struts包名,以及JSP(Java Server Pages)中的struts标签。
示例性的,部分替换规则对应代码如下:
<rule src="org.apache.struts"dest="jp.co.founder.st2sp"target=".java"/>
<rule src='taglib prefix="bean"uri="struts-bean"%>;<;%@'
dest='<;%@taglib prefix="bean"uri="st2sp-bean"%>;'target=".jsp"/>
其中,src表示需要替换的字符串,dest表示替换后的内容,target表示对应的目标文件(可具体指定文件名,实现个别文件替换)。
在一个实施例中,如图2所示,创建一个新工程命名为st2sp,在新工程中,初始换Spring MVC,解析旧工程Struts配置,并将action信息注册到Spring MVC中,对action参数进行处理。
在批量替换时,引入新建的工程st2sp,替换掉Struts的import信息,替换jsp中Struts标签并删除Struts的jar包。
在另一实施例中,如图3所示,基于S103中定义的替换规则,在执行替换流程时,先读取旧工程Struts中文件,读取替换规则,判断文件名是否以target结尾,若是则进行替换,循环读取替换规则进行替换,判断规则是否执行完,并判断文件是否全部替换完成。
本实施例提供的方法,解析struts的各种配置文件,将原本通过struts核心servlet转发的各种请求转变为符合Spring MVC标准的请求,从而实现框架级别的替换,替换过程简单易于实际应用,可有效降低Struts替换成本。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图4为本发明实施例提供的一种用于Struts替换的装置的结构示意图,参照图4,该装置包括:
工程创建模块410,用于新建工程项目,对Struts配置文件进行解析后,在SpringMVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
其中,所述新建工程项目,对Struts配置文件进行解析后还包括:
初始化Spring MVC,指定Spring MVC配置文件路径,读取旧工程文件中的配置,将From和Action信息存至Map中。
其中,将Action信息注册到Spring MVC中。
规则定义模块420,用于创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
本发明实施例提供的Struts替换装置,新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对各种外部请求进行注册,创建Struts基础类替换Struts中对应的ActionForm类和Action类,定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。从而可以将struts核心servlet转发的各种请求转变为符合Spring MVC标准的请求,从而实现框架级别的替换,提成成本低,且实现过程简单,引入新工程后,只需定义替换规则即可实现替换。
在一个实施例中,基于相同的构思,本发明实施例提供了本发明实施例提供了一种电子设备,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(Communications Interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行上述各实施例提供的Struts替换方法的步骤,例如包括:新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
在一个实施例中,基于相同的构思,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的Struts替换方法的步骤,例如包括:新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
本发明的各实施方式可以任意进行组合,以实现不同的技术效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种Struts替换方法,其特征在于,包括:
新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;
在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
2.根据权利要求1所述方法,其特征在于,所述新建工程项目,对Struts配置文件进行解析后还包括:
初始化Spring MVC,指定Spring MVC配置文件路径,读取旧工程文件中的配置,将From和Action信息存至Map中。
3.根据权利要求1所述方法,其特征在于,所述在Spring MVC框架中对外部请求进行注册包括:
将Action信息注册到Spring MVC中。
4.一种用于Struts替换的装置,其特征在于,包括:
工程创建模块,用于新建工程项目,对Struts配置文件进行解析后,在Spring MVC框架中对外部请求进行注册;在新建的工程中创建Struts基础类替换Struts中对应的ActionForm类和Action类;
规则定义模块,用于创建自动化替换工程并定义替换规则,对Struts旧工程进行自动化批量替换,替换Struts导入信息和JSP中Struts标签。
5.根据权利要求4所述装置,其特征在于,所述新建工程项目,对Struts配置文件进行解析后还包括:
初始化Spring MVC,指定Spring MVC配置文件路径,读取旧工程文件中的配置,将From和Action信息存至Map中。
6.根据权利要求4所述装置,其特征在于,所述在SpringMVC框架中对外部请求进行注册包括:
将Action信息注册到Spring MVC中。
7.一种电子设备,包括处理器、存储器以及存储在所述存储器中并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述Struts替换方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述Struts替换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011198994.4A CN112329018A (zh) | 2020-10-31 | 2020-10-31 | 一种struts替换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011198994.4A CN112329018A (zh) | 2020-10-31 | 2020-10-31 | 一种struts替换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112329018A true CN112329018A (zh) | 2021-02-05 |
Family
ID=74323943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011198994.4A Pending CN112329018A (zh) | 2020-10-31 | 2020-10-31 | 一种struts替换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112329018A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067435A1 (en) * | 2011-09-08 | 2013-03-14 | International Business Machines Corporation | Method and apparatus for programming assistance |
CN105068820A (zh) * | 2015-09-11 | 2015-11-18 | 浙江中烟工业有限责任公司 | 一种基于SSH框架集成Axis开发并发布Web Service的方法 |
CN111198712A (zh) * | 2019-12-19 | 2020-05-26 | 贵阳语玩科技有限公司 | 一种项目文件名批量自动替换方法 |
-
2020
- 2020-10-31 CN CN202011198994.4A patent/CN112329018A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067435A1 (en) * | 2011-09-08 | 2013-03-14 | International Business Machines Corporation | Method and apparatus for programming assistance |
CN105068820A (zh) * | 2015-09-11 | 2015-11-18 | 浙江中烟工业有限责任公司 | 一种基于SSH框架集成Axis开发并发布Web Service的方法 |
CN111198712A (zh) * | 2019-12-19 | 2020-05-26 | 贵阳语玩科技有限公司 | 一种项目文件名批量自动替换方法 |
Non-Patent Citations (2)
Title |
---|
FREDLZY: "把系统从Struts2 迁移到 Spring MVC六大步总结", Retrieved from the Internet <URL:https://blog.csdn.net/fred_lzy/article/details/80926758> * |
王水;刘杨涛;: "MyEclipse开发SSH2应用之"超光速"教程", 电脑编程技巧与维护, no. 01 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10726195B2 (en) | Filtered stylesheets | |
US10678910B2 (en) | Modifying web page code to include code to protect output | |
CN107870821B (zh) | 应用程序的跨平台调用方法及系统 | |
FI118311B (fi) | Menetelmä, tietojenkäsittelylaite, tietokoneohjelmatuote ja järjestely elektronisen datan prosessointiin | |
US20110307238A1 (en) | Methods for utilizing a javascript emulator in a web content proxy server and devices thereof | |
US20150378714A1 (en) | Providing Context-Specific Software Updates to Client Applications | |
US20150317156A1 (en) | Systems and Methods for Automated Generation of Interactive Documentation Based on Web Application Description Language Files | |
US8380812B2 (en) | Source identification for multipart content validation | |
US11677809B2 (en) | Methods for transforming a server side template into a client side template and devices thereof | |
CN107835228B (zh) | 一种基于动态广义路由的指令处理方法及装置 | |
CN109145235B (zh) | 用于解析网页的方法、装置及电子设备 | |
US20200213365A1 (en) | Tag-Based Security Policy Creation in a Distributed Computing Environment | |
CN109902247B (zh) | 一种页面渲染的方法、装置及电子设备 | |
CN112926061B (zh) | 插件处理方法及装置 | |
CN113382083A (zh) | 一种网页截图方法和装置 | |
CN108885544B (zh) | 前端页面国际化处理方法、应用服务器及计算机可读存储介质 | |
CN108021564A (zh) | 一种页面重定向的方法和设备 | |
CN110018835B (zh) | Yang模型配置数据处理方法及装置、终端设备及存储介质 | |
CN111723314A (zh) | 网页展示方法、装置、电子设备及计算机可读存储介质 | |
CN112579958A (zh) | 网页转换方法、装置、计算机设备及可读存储介质 | |
CN112631644A (zh) | Flutter构造函数初始化式的修改方法及装置 | |
CN113778725A (zh) | 一种数据校验方法和装置 | |
AU2018390863B2 (en) | Computer system and method for extracting dynamic content from websites | |
CN112329018A (zh) | 一种struts替换方法 | |
CN109491647A (zh) | 一种基于编程语言的在线预防攻击方法及电子设备 |
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 |