基于Struts2框架的输入校验功能的实现与应用

时间:2022-05-30 03:52:02

基于Struts2框架的输入校验功能的实现与应用

摘要:所谓输入校验是指数据提交给服务器处理之前,对数据的合法性进行验证,只有合法的数据才会进行后续的处理,本文主要介绍了基于Struts2框架的三种输入校验功能的实现流程,并结合实例分别阐述了Strtus2的手工编写代码验证、基于Xml配置方式的验证和基于Annotation注解验证在实际项目开发中的应用,总结了Struts2框架的输入校验在项目开发中的必要性、高效性和易于扩展性及其各种实现的优缺点。

关键词:Struts2;输入校验;Xml;Annotation

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)35-8201-02

输入校验在Web开发中具有重要的作用,它是一个严格的信息检察官,确保服务器端的程序不会接收到非法的数据,保证了Web应用能够安全顺利的执行。输入校验可以分为两个部分,一部分是客户端校验,主要是通过页面中的JavaScript实现;另一部分是服务器端的校验,通过在后台加入校验代码来实现。所有的Web应用系统都会通过这两部分的结合来达到输入信息的安全,从根本上来说,Struts2与其它技术实现输入校验的原理都是一样的,但Struts2却提供给我们一种独有的方式,能够更快捷更顺利地完成验证过程。Struts2框架提供了3中不同的方式来实现对输入数据的校验。

1 基于手工编写代码实现输入校验

该验证方式是Struts2通过的最基本验证方式,它要求我们的Action类要继承ActionSupprot,并覆写Validateable接口或其子类中的validate()方法,把对数据的验证规则写在该方法中,其他的业务方法在其之后执行,但该方法会对Ation中所有业务方法都起作用。实际应用中,每个不同的业务所对应的页面是不同的,验证规则和代码也是不同的,为了达到不同的业务执行不同的验证规则,可以通过覆盖validatMethod()方法来实现,这样只会校验方法名为method的Action中方法,其中的Method的第一个字母要大写。下面通过一个用户登录为例来介绍手工编写代码方式校验功能的步骤与实现。

第一步:新建一个用户登录的页面为user_login.jsp,要求用户名不能为空,密码也不能为空,并且密码的长度要在6-12位之间,核心代码如下:

第二步:创建ValidateAction类,并重写该类中的validateLogin方法,其核心代码如下:

Struts2框架通过反射调用action中的validateXxx()方法,xxx为方法名,如果fieldErrors集合不为空,并且size大于0,系统自动将请求转发至名称为input的视图。如果fieldErrors集合为空,或size等于0,系统将执行action中的对应业务方法,该实例中为login()登录方法。

第三步:在struts.xml核心配置文件中添加如下核心代码:

当验证失败后,会把请求转发给/validate/login.jsp

在user_login.jsp页面中通过标签s:fielderror来显示对应的字段验证错误信息。

2 基于XML配置方式的输入校验

Struts2框架为我们提供了众多的常用功能的验证器类,在需要时我们只需进行简单配置就行了,这些常用的验证器被放在了com\opensymphony\xwork2\validator\validators\default.xml文件中,这里我们还是以一个用户登录为例,通过XML配置的方式来实现输入校验,具体步骤如下:

第一步:新建一个登录页面loginXml.jsp,其核心代码和前面的相同,

第二步:我们新建一个ValidateXmlAction类,该类中除了没有重写validateXxx()方法,其它的代码和上面的ValidateAction类相同。

第三步:对action方法使用XML配置进行输入校验,该文件的取名应为:ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中的action标签的nane属性的值,并且该文件3 基于Annotation注解的输入校验

基于 Annotation 的注解校验可以大大降低struts.xml内容的配置量,Strut2提供了大量的Annotation验证器。如果要在 Action 类中使用Annotation注解来进行验证校验,则需要进行如下两项的配置:1)在Action类上添加@Validation()注解。2)对Action 里各属性对应的 setter 方法使用Annotation进行规则校验。通过在 Action 中使用 Annotation 指定各字段应该满足的校验规则,从而达到降低配置量的目的。

4 结束语

本文介绍了在 Struts2框架下分别通过手工代码编写、基于Xml配置、基于Annotation注解的三种方式来对用户输入的数据进行合法性校验,并通过用户登录的例子来分别进行演示。每种方法都有其自身的使用的范围和优缺点,在实际开发中选择什么样的校验方式,需要依据软件的架构设计、性能要求及开发者自身习惯等等诸多因素而定。但数据校验是软件开发过程中不可忽视的一个重要环节,它的设计与实现会影响到整个软件的使用质量,在实际开发中要引起我们的足够重视。

参考文献:

[1] 齐新力,王敏. 基于 Struts2 框架数据校验的分析与应用[J]. 仪器仪表用户, 2011, 18(5): 48 -50.

[2] 甘文丽,常志玲 Struts 2框架输入校验的研究与应用[J].制造自动化,2012(11).

[3] 李刚, 轻量级JavaEE企业应用实践Struts2+Spring+Hibernate整合开发 [M]. 北京:电子工业出版社,2008: 156-166.

[4] 郑阿奇. Java EE实用教程[M]. 北京: 电子工业出版社,2011: 70-90.

上一篇:物联网技术与应用发展的探讨 下一篇:基于AJAX技术和MVC设计模式的电子政务系统的设...