实验六 使用Struts2验证框架验证输入数据
Struts2 数据输入校验(1) —— 函数验证
Struts2 数据输入校验(1) ——函数验证Java框架 2009-02-20 13:10 阅读70 评论0字号:大中小用struts2标签库来实现上述目的的基本原理:错误消息分为field级和action级,都在ActionSupport类中预定义了,不同的是,fieldError是通过一个Map来实现,事实上记录了field的名字和错误信息,因此能在页面上对应的field中显示;而actionError是通过一个Collection实现,没有记录报错的来源,只记录了错误信息。
注意,下面是简要流程:(1)页面提交到action之后,首先struts会尝试对输入的字符串信息根据Action中定义的属性类型进行类型匹配及转换,如果输入为空,它会将内容置为该类型的缺省值(0、0.0、空字符串等等),对于数据格式不匹配的情况,比如说在age栏里面输入字母等等,struts会自动提示默认的错误,并返回input,这一工作是struts2自动完成的。
(2)然后,验证机制生效,调用validate()函数和XML验证框架中的验证逻辑(《S truts2 数据输入校验(2) ——XML验证》会提到),检查的同时会因为验证错误调用了a ddFieldError()和addActionError()。
页面提交之前,struts会调用ActionSupport(严格说是ValidationAware接口)的hasErrors()方法,该方法很简单,就是检查fieldError的Map和actionError的Collection是否为空,如果均为空,则调用execute()方法[*]进行业务逻辑的调度,否则返回error。
(3)最后,程序会根据返回信息执行forward操作,struts.xml中则定义了这些返回值所对应的跳转逻辑。
如果有错误返回,错误信息会在页面上提示在Action中所有addFieldError()设置的信息将在对应的field位置显示;在Action中所有addActionError()设置的信息将不会显示,除非在页面中定义了s: actionerror控件,那么错误将以ul的格式显示。
实验六 Struts2 Action实验(一)
实验六 Struts2 Action实验(一)
一、实验目的:
熟悉Struts2 Action类的基本用法,掌握Struts2 Action类在MVC程序开发中的编写和应用,初步实现CRUD编程。
二、实验内容:
在MyEclipse环境下运用Struts2技术改写实验四内容,完成相应的数据库CRUD功能,调试运行程序。
三、实验要求:
1. 掌握运用Struts2 开发MVC程序的基本步骤;
2. 掌握Struts2 Action接收请求参数、调用业务逻辑、封装结果数据并转向结果页面的
用法
3. 掌握在struts.xml文件中对Struts2 Action的基本配置;
4. 运用相关技术(Struts2以及JDBC等)完成规定功能;
5. 写出实验报告。
四、实验学时:2学时
五、实验步骤:
1.进入MyEclipse环境,新建一个Web Project;
2. 设计一个数据库,包括出版社表和书籍表,出版社表字段包括序号(自增主键)、出版
社编码和出版社名称,书籍表字段包括序号(自增主键)、书号、书名、作者、价格和出版社;
3. 采用Struts2技术完成出版社基本信息管理模块的主要功能,包括:
3.1 设计封装了出版社表信息的JavaBean;
3.2 设计封装了针对出版社表信息进行CRUD操作的工具JavaBean(DAO类);
3.3 设计并开发页面
3.4 设计并开发Action控制器
3.5. 完成显示所有出版社信息的功能;
3.6. 完成对出版社信息的增加功能;
4. 调试运行程序。
六、选作实验
1. 完成对出版社信息的条件查询功能;
2. 完成对出版社信息的修改和删除功能。
Struts2全部实验报告
实验时间2015年11月6日19:00时至22:00时学时数 4 1.实验名称实验一:熟悉Struts2核心文件2.实验目的(1)熟悉Struts2的配置文件web.xml和struts.xml。
(2)熟悉如何书写用户定义的控制器。
(3)深刻理解DMI和通配符的使用。
(4)学会struts2接收参数的方法。
3.实验内容(1)将如下页面中登陆和注册的action配置用通配符实现。
(2)理解局部结果和全局结果,学会在struts.xml 中配置全局结果。
(3)实现增加书籍信息的业务处理。
(4)修改管理员登陆后的页面并新写页面addBook.jsp,使得点击添加书籍信息后呈现下面的页面4.实验原理或流程图要求:➢管理员登录后跳到管理员登陆成功的页面➢普通用户登录后跳到普通用户登陆成功的页面➢注册后跳到注册成功的页面➢登录时用户名密码输入错跳到出错页➢注册和登录时用户名,密码没有输入时跳到登陆注册页,并在登陆注册页上显示校验失败的相关提示。
要求如下:➢当输入书名,作者和定价后,要求使用属性驱动、模型驱动或今天新学的接收参数的方法进行参数接收。
➢使用集合模拟数据库。
➢理解chain结果类型,使得增加书籍后马上能将新增书籍的信息显示出来。
呈现出如下的页面:(注意:此处需要学会读取struts2中ValueStack中的内容)5.实验过程或源代码6.实验结论及心得通过本此实验,知道了Action配置采用通配符的方式该如何编写,也会了动态调用Action里面的方法,懂得了全局结果的配置,也会使用了接受参数的方法。
项目名称/login.jsp,查看运行结果。
(3)使用内置校验器进行校验项目3:用户注册验证。
步骤1:register.jsp文件步骤2:Register.java文件步骤3:新建 Register-register-validation.xml文件步骤4:struts.xml文件步骤5:运行程序,URL地址栏中输入http://主机名:端口名称/项目名称/register.jsp,查看运行结果。
Strust2 数据校验
Strust2-数据校验一. ActionSupport是个工具类,他实现了Action, Validatable等接口, Validatable提供validate()方法进行数据验证.Action只要继承ActionSupport类,重写validate()方法就可以进行数据验证二. 校验的流程首先,Struts框架对输入数据进行类型转换,然后再进行数据校验,如果类型转换与数据校验都没有错误发生, 就进入execute(),否则请求将被转发到input视图三. 注册实例1. register.jsp[html]view plaincopy1.<span style="font-size:16px;"><%@ page language="java"contentType="text/html; charset=utf-8"%>2.<%@ taglib prefix="s"uri="/struts-tags"%>3.<html>4.<head>5.<title>Insert title here</title>6.</head>7.<body>8.<s:form action="register"method="post">9.<s:textfield name="name"label="姓名"required="true"/>10.<s:textfield name="age"label="年龄"required="true"/>11.<s:submit value="提交"></s:submit>12.</s:form>13.</body>14.</html>15.</span>2.当姓名和年龄提交时候,用RegistAction类来获取数值:RegistAction.java[html]view plaincopy1.<span style="font-size:16px;"> 1: public class RegistAction extends ActionSupport {2. 2: private String name;3. 3:4. 4: private int age;5. 5:6. 6: ...//省略name,age的setter,getter方法7. 7:8. 8: public String execute() {9. 9: return SUCCESS;10. 10: }11. 11:12. 12: public void validate() {13. 13: if ("".equals(name)) {14. 14: this.addFieldError("name", "用户名不能为空");15. 15: }16. 16: if (name.length() > 6) {17. 17: this.addFieldError("name", "用户名长度不能超过5位");18. 18: }19. 19:20. 20: if (age <1 || age > 150) {21. 21: this.addFieldError("age", "年龄范围必须在1~150之间");22. 22: }23. 23: }24. 24: }25.</span>[html]view plaincopy1.<span style="font-size:16px;">.struts.xml2.3. 1: <package name="test1"extends="struts-default"namespace="test1">4. 2: <action name="register1"class="test1.RegistAction">5. 3: <result name="input">register.jsp</result>6. 4: <result name="success">../success.jsp</result>7. 5: </action>8. 6: </package>9.</span>[html]view plaincopy1.<span style="font-size:16px;">4.success.jsp2.3. 1: <%@ page contentType="text/html;charset=GBK"%>4. 2: <%@ taglib prefix="s"uri="/struts-tags" %>5. 3: <s:property value="name"/>,欢迎您登录!6.7.</span>如果name和age都不输入,则会执行Action中的校验方法,会提示用户名不能为空如果不输入userName, age输入为abc,会提示Invalid field value for field "age".username is empty1. 其中Invalid field value for field "age" 信息是struts2通过内置的类型转换器进行类型转换时,如果不能成功转换, struts2框架自动生成一条错误信息,并将该错误信息放到addFieldError里面,这种默认的输出信息格式是在xwork-2.0.4.jar中定义的.com/opensymphony/xwork2/xwork-messages.properties文件中有一条xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".2. 这是一种全局的错误提示方式,整个系统中只要是字段类型转换错误都会这样提示,我们也可以改变这种输出格式,只要在全局的国际资源文件中重写xwork.default.invalid.fieldvalue就可以了.实现方式:在struts.xml中加入<constant name="struts.custom.i18n.resources"value="messageResource"></constant>或者也可以在struts.properties中加入struts.custom.i18n.resources=messageResource指定国际化资源文件名为messageResource. Properties新建messageResource. Properties资源文件并添加数据xwork.default.invalid.fieldvalue={0} failure 修改之后字段类型转换错误提示为: {0} failure3 所有的类型转换失败后,struts2会将基本类型设置为0,对象类型设置为null,这里的age的类型为Integer,当类型转换失败age值为null,如果age的类型为int,那么转换失败后值为04.这种提示信息不够友好,也可以定义局布的提示信息,为每一个Action新建一个properties文件,文件名为XXX.properties(Action名.properties)实现方式:新建RegistAction.properties并添加invalid.fieldvalue.age=age errorinvalid.fieldvalue.birthday=birthday error其中age和birthday分别为字段的名称四.Struts2也提供类似BaseDispatchAction的功能1.<span style="font-size:16px;">1: package com;2. 2:3. 3: import com.opensymphony.xwork2.ActionSupport;4. 4:5. 5: public class Regist2Action extends ActionSupport {6. 6:7. 7: private String userName;8. 8:9. 9:10. 10:11. 11: public String getUserName() {12. 12:13. 13: return userName;14. 14:15. 15: }16. 16:17. 17: public void setUserName(String userName) {18. 18:19. 19: erName = userName;20. 20:21. 21: }22. 22:23. 23: public String regist() throws Exception {24. 24:25. 25: System.out.println("注册成功-regist");26. 26:27. 27: return SUCCESS;28. 28:29. 29: }30. 30:31. 31:32. 32:33. 33: public void validateRegist() {34. 34:35. 35: if(userName.equals("")){36. 36:37. 37: addFieldError("userName", "请输入用户名-registValidate");38. 38:39. 39: }40. 40:41. 41: }42. 42:43. 43: }44. 44:45. 45: <action name="regist2"class="com.Regist2Action"method="regist">46. 46: <result name="success">/welcome.jsp</result>47. 47: <result name="input">/regist2.jsp</result>48. 48: </action>49.</span>指定了method为regist,当请求时会执行regist(),不会再去执行默认的execute()方法了, validateRegist()方法是专门针对regist校验的.(格式为validate+方法名)。
java struts2入门学习实例--使用struts进行验证
一、为什么要进行验证?验证几乎是注册登录的必须前提,验证的主要作用有两点:1、安全性2、对用户提供差异化服务。
二、如何验证?ActionSupport类中有一个validate()方法,这是为开发者使用struts提供的一个接口,初始时是没有任何验证的。
所以要使用此方法首先要进行重写该方法。
举注册为例,调用顺序为setUsername()方法--》validate()方法--->register()方法。
所以一旦验证不过那么将无法执行后续方法,即后面的功能将被隔离!三、实例:UserAction.javapackage com.amos.web.action;import com.opensymphony.xwork2.ActionSupport;/*** @ClassName: UserAction* @Description: 用户管理,将相关的action封装到一个类中* @author: amosli* @email:amosli@* @date Jan 8, 2014 1:06:00 AM*/public class UserAction extends ActionSupport {private static final long serialVersionUID = -6275534406709255984L;private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {System.out.println("执行setUserName()方法!");if(username != null& username.trim().length() > 0) { ername =username;}}public String getPassword() {return password;}public void setPassword(String password) {this.password =password;}// 检验方法public void validate() {System.out.println("执行validate()方法!");if(username != null&& username.trim().length() > 0) {}else{this.addFieldError("username", "用户名为必填!");}if(password != null&& password.trim().length() > 0) {}else{this.addFieldError("password", "密码为必填!");}}// 用户注册public String register() throws Exception {System.out.println("执行注册方法!");return"toRegisterJsp";}// 用户登录public String login() throws Exception {System.out.println("执行登录方法!");return"toLoginJsp";}}效果如图所示:直接点击提交,不输入用户名和密码页头将提示信息显示出来有可能出现的问题:1、下面这个是因为没有验证通过,要在user_struts.xml中进行配置,如果出错,将采措施进行回避这样的问题。
验证框架一般用法
Struts2验证框架的基本用法防止不正确或不符合业务需求的数据进入应用程序是必不可少的,服务器端的验证是防止不正确的数据进入应用程序之前的最后一道屏障。
在真实的业务逻辑被调用之前,应验证用户提交的数据是否满足需求,若数据不符合需求,应告知用户发生了什么错误及如何修正输入。
示例:validator,利用Struts2的验证框架在服务器端验证用户的输入。
●效果:●实现步骤(1)完成index.jsp → register →show.jsp(2)为register添加验证规则,在StudentAction同包下创建名为:StudentAction-register-validation.xml的配置文件,struts2的验证框架会自动读取该文件中定义的验证规则进行校验工作。
其中register是action的名称,若Action类中仅有名为execute的默认执行方法,则该文件命名模式为:Action类名-validation.xml。
其中,DOCTYPE的定义代码可到xwork-core-x.x.x.jar包中的xwork-validator-x.x.x.dtd 文档中去复制。
requiredstring :必填字符串>0stringlength :检查字符串长度是否在指定的范围内,其范围使用<param>来指定maxLength和minLength。
int :检查整数是否在指定的范围内,其范围使用<param>来指定min和max值。
date :检查日期是否在指定的范围内,其范围使用<param>来指定min和max值。
【注】类型转换在验证框架之前进行!(3)为register增加一个名为input的result定义,该result代表了验证框架验证失败后的转向页面,一般是返回至之前的表单页。
课堂练习:自己动手实现validator示例,体会struts2验证框架的一般用法。
实验六 Struts2开发(二)
实验五Struts 2开发(二)【实验目的】:1.进一步掌握Struts应用程序开发的步骤2.理解拦截器的机制和作用3.掌握拦截器的开发、配置和引用。
4.理解如何使用Struts2框架实现文件上传和下载。
【实验内容】:开发和使用拦截器;利用Struts 2框架实现文件上传。
【实验步骤】:(一) 拦截器的使用拦截器是动态拦截Action调用的对象。
它提供一种机制,使开发者可以定义一段代码,在Action执行之前或之后被调用执行,也可以在一个Action执行前阻止其执行。
同时也提供了一种可以提取Action中可重用部分的方式。
Struts 2设计的灵巧性,很大程度上得益于拦截器设计,拦截器几乎完成了Struts 2框架70%的工作,包括解析请求参数、将请求参数赋值给Action属性、执行数据校验、文件上传等。
当需要扩展Struts 2功能时,只需要提供对应拦截器,并将它配置在Struts 2容器中即可,如果不需要该功能,也只需取消该拦截器的配置即可。
Struts 2内建了大量的拦截器,这些拦截器以name-class对的形式配置在struts-default.xml文件中。
打开此文件,观察其结构和内容。
simpleInterceptor应用程序的开发步骤(1)在MyEclipse的workspace中新建Web工程simpleInterceptor。
导入Struts2开发需要用到的类库。
其目录结构如下:(2)将Struts 2框架的支持类文件复制到WebRoot/WEB-INF/lib目录下。
(3)创建包org.crazyit.app.action包,其下建立Action类LoginAction。
当用户访问login.jsp页面时,如果输入用户名:101031.2 密码:student。
LoginAction执行完后将返回SUCCESS视图。
其代码如下:package org.crazyit.app.action;import com.opensymphony.xwork2.ActionSupport;public class LoginActionextends ActionSupport{private String username;private String password;//username的setter和getter方法public void setUsername(String username){ername = username;}public String getUsername(){return username;}//password的setter和getter方法public void setPassword(String password){this.password = password;}public String getPassword(){return password;}public String execute() throws Exception{System.out.println("进入execute方法执行体..........");Thread.sleep(1500);if (getUsername().equals("SE")&& getPassword().equals("student") ){return SUCCESS;}else{return ERROR;}}}(4)创建包org.crazy.app.interceptor包,其下建立拦截器类SimpleInterceptor。
struts2数据验证
struts2的核心是从webwork演变来的,其数据验证框架其实就是原webwork的那一套东西。
一,Struts2数据验证的整体框架介绍struts2的action都要继承ActionSupprot类,这个类实现了Validateable 与ValidationAware这两个跟数据验证有关的接口。
其中Validateable只有一个方法validate()用于数据验证;ValidationAware则用于记录验证出错时的相关信息。
而数据验证在什么时候被调用呢?数据验证的调用是包装在workflow拦截器里,我们看看workflow拦截器在struts_default.xml中的定义,它是放在默认的defaultStack拦截器组里,相关顺序如下:<interceptor-ref name="params"/><interceptor-ref name="conversionError"/><interceptor-ref name="validation"/><interceptor-ref name="workflow"/>params与conversionError这两个拦截器在workflow的前面,它们的工作是从request中把数据转成正确的Java类型数据,以供后面处理。
validation 拦截器实质是AnnotationValidationInterceptor与我们这里谈的数据验证不是一回事,它只判断有没有@SkipValidation注解,如果有就不会路过数据验证,只是起一个开关作用。
当workflow拦截器触发时,它先检查当前请求的action是否实现了Validateable接口,如果实现了该接口,则调用validate()方法:如果这个方法处理时发现有数据验证不通过,则会生成一个错误信息并交给ValidationAware的方法去存储这些出错信息。
struts2中所有方法进行输入校验
拦截器将异常封装到filedErrors里。不管类型转换是否出现异常,都会进入第3步。
3.系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名。
4.再调用action中的validate()方法。
5.经过上面4步,如果系统中的filedErrors存在错误信息(即存放错误信息的集合的size大于0),
系统自动将请求转发至名称为input的视图。如果系统中的filedErrors 没有任何错误信息,系统将执行
action中的处理方法。
return username;
}
public void setUsername(String username){
ername = username;
}
public String getMobile(){
return mobile;
}
public void setMobile(String mobile){
对指定方法进行校验
validate.Xxx
public void validateUpdate(){ //重写,会对action 中的指定方法进行校验
==========================
输入校验的流程:
1.类型转换器对请求参数执行类型转换,并把转换后的值赋给action属性。
import com.opensymphony.xwork2.ActionSupport;
pubilc class PersonAction extends ActionSupport{
软件开发框架Struts2输入校验
课件演示
认真听讲
参与发言
示范操作
(1)使用字段校验的输入校验实例
(2)使用非字段校验的输入校验实例
(3)输入校验的国际化信息提示实例
讲解
示范
认真听讲
参与发言
任务实施
(1)使用字段校验的输入校验实例
(2)使用非字段校验的输入校验实例
(3)输入校验的国际化信息提示实例
动手实践
分组实践
小组讨论 动手实践
《软件开发框架(
单元5Struts2输入校验
授课教师:软件开发课程组
授课班级:单元总学时:6
教学条件
软件开发平台、投影设备、广播软件、互联网
教学素材
参考教材、课件、授课录像
教学目标
知识目标:
(1)了解输入校验的重要性;
(2)掌握validate。方法的使用;
(3)掌握validateXxx()方法的使用;
讲解归纳
课件演示
认真听讲
参与发言
示范操作
(1)必填校验器使用实例
(2)字符串长度使用实例
(3)日期校验器使用实例
(4)邮件地址校验器使用实例
讲解
示范
认真听讲
参与发言
任务实施
(1)必填校验器使用实例
(2)字符串长度使用实例
(3)日期校验器使用实例
(4)邮件地址校验器使用实例
动手实践
分组实践
小组讨论
动手实践
(4)掌握校验器的配置风格;
(5)熟练掌握Struts2常用内置校验器。
能力目标:
(1)能够重写validate()方法和validateXxx()方法,实 现手动输入校验;
(2)能够熟练使用字段校验器配置风格和非字段校验 器配置风格;
第4章 Struts 2输入校验
4.2.1 正则表达式
客户端校验一般都使用JavaScript来进行输入的 校验。JavaScript对输入判断都会使用到正则表 达式。正则表达式是字符串处理的利器,功能非 常强大。 正则表达式的功能非常强大,通过它可以进行字 符串匹配、字符串查找、字符串替换。今天重点 介绍字符串的匹配功能,字符串的匹配功能对于 输入校验提供了很大的帮助。先看下面简单的正 则表达式的示例。 正则表达式:a.b 匹配abb,acb,等 “.“是正则表达式的特殊字符,它的含义是匹配 所有的字符还有空格和Tab键。
4.4.3 校验动态方法
前面介绍的在一个Action中包含多个处理逻辑,不同处理逻辑对 应不同的方法。那如何定义输入校验来校验这些处理逻辑呢? 下面来看一个简单示例,首先将上一示例中的Action中添加一个 validate()方法,该方法将在控制台上简单的打印一句话,代码 如下所示。 public void validate() { System.out.println("validate method"); } 这里为了简单测试,并不输入任何的用户信息。直接单击“注册” 按钮,在控制台将打印如下语句: validate method execute method 从控制台打印的语句可以看出,在Action中首先执行了validate() 校验方法,然后再执行execute()处理逻辑方法。如果单击“删除” 按钮,在控制台将打印如下语句。 validate method delete method
4.2.2 JavaScript中使用正则表达式
下面以一个简单示例来介绍在JavaScript中使用 正则表达式进行字符串匹配。程序要求必须输入 数字,如果输入的不是数字就弹出提示,代码如 下所示。
软件开发框架(J2EE)Struts 2手动输入校验
输入校验的重要性
• 由于Web应用的开放性,输入校验直接影响了系统的稳 定性。因为不能保证每个用户都按照开发者的意图来输 入数据,而往往有些用户喜欢恶意输入非法数据来进行 测试和破坏。例如,会员注册系统中,如果用户输入的 出生日期在今日日期之后,则需要对用户输入的数据信 息进行校验并在页面中提示用户校验的结果信息。因此 ,良好的输入校验,是一个项目的必不可少的环节。
软件开发框架(J2EE)
validate()方法输入校验
• 在Struts 2框架中,validate()方法是专门用来校验数据的 方法。具体实现时,可以通过继承ActionSupport类,并 重写validate()方法来完成输入校验。
软件开发框架(J2EE)
validate()方法输入校验实例
软件开发框架(J2EE)
validate()方法输入校验实例
1.在MyEclipse开发工具中创建Web应用ch6,并配置Struts 2开发环境。
软件开发框架(J2EE)
validate()方法输入校验实例
2. 在 src 目 录 下 新 建 com.mxl.actions 包 , 并 在 其 中 创 建 LoginAction 类 , 在 该 类 中 重 写父 类 ActionSupport 中 的 validate()方法。
软件开发框架(J2EE)
validate()方法输入校验实例
5.运行程序,请求userlogin.jsp页面,输入用户名和密码, 校验数据的有效性。
软件开发框架(J2EE)
validateXxx()方法输入校验
• 在Struts 2框架中,Action可以包含多个逻辑处理方法, 也就是可以包含多个类似于execute()的方法,只是方法 名不同。如果在Action中重写了validate()方法后,则会在 每次调用逻辑处理方法前调用validate()方法。
struts2 实验报告
1.系统分析与设计1.1系统功能描述本系统是个非常简单的注册、登录系统。
本系统的实现是基于Struts2、Spring、Hibernate三个框架,系统功能单一,业务逻辑简单。
当用户注册信用户时,就是向系统中增加一个新用户,对应的数据库增加一条记录。
当用户输入注册信息时,系统提供了基本的输入验证判断用户输入是否合法,只有当用户输入满足基本输入要求时,才会被提交到实际的登录系统,进行实际的登录处理。
系统还使用了随机产生的图形验证码来防止刷新,防止用户通过单击浏览器的书安心按钮来重复注册多个用户。
系统还提供了一种Ajax方式来验证用户输入的注册名是否有效,系统要求所有的用户名不能重复。
故当用户输完用户名后,系统立即在页面上方提示用户该用户名是否可用,如果系统中没有该用户名,则系统提示该用户名可用;否则提示用户该用户名重复,用户必须重新选择用户名注册。
当用户注册一个新用户名之后,就可以使用系统的登录功能来登录系统了,用户输入登录用的用户名、密码后,系统一样提供了基本的输入校验。
除此之外,系统还采用了随机产生图形验证码来防止恶意用户的暴力破解,系统随机生成一个图形验证码,而用户登录必须输入图形验证码中显示的字符串,只有用户输入的字符串和系统随机生成的验证码字符相同时,系统才允许用户登录。
1.2系统功能流程处理用户注册的流程图东北大学软件学院实践考核类课程(四)实验报告1.3数据库设计ColumnNarneDatatppe HOTH ULLAUTOI NC :FlagsDefaultValue Commentuser_id|S>INT(11)✓ ✓_|UNSIGNED _|ZEROFELLEBBQ username 心.VARCH.4.R(50]_|BINARYQ user_pass VARCHAR(50] ✓_|BIN4RYQ emailVARCHAR(100]1BIN4RY相关的映射文件:<hibernate-mapping package ="org.reg_login.model"><class name ="User"table ="usertable"〉<id name ="id"column ="user_id"><generator class ="identity"/> </id ><property name ="user"column ="user_name"not-null ="true"length ="50"unique ="true"/><property name ="pass"column ="userpass"n ot-null ="true"C=3length ="50"/><property name ="email"length ="100"/></class></hibernate-mapping >一旦提供了上面的映射文件,Hibernate 就可以理解User 和user_table 之间的对应关系。
软件开发框架(J2EE)Struts 2输入校验实训指导书
实训(验)项目单
编制部门:编制人:审核人:编制日期:2015年10月21日
项目编号
项目名称
重写validate()方法实现对用户输入数据的校验
训练对象
软件技术
学时
1
课程名称
软件开发框架(J2EE)源自教材要求递交递交时间
目的
1.掌握Struts 2手动输入校验方法
2.掌握validate()方法的应用
4在struts.xml文件中配置ProductAction类
5在WebRoot目录下新建add_pro.jsp文件
6运行结果
1)将Web应用ch6部署到Tomcat服务器上,然后启动Tomcat服务器。
2)打开浏览器,在地址栏输入http://localhost:8080/ch6/add_pro.jsp,显示商品信息录入界面。
1.操作规范(20%)
2.完成重写validate()方法实现对用户输入数据的校验程序开发(50%)
3.实训报告(30%)
《软件开发框架(J2EE)》课程
实训(验)项目单
编制部门:编制人:审核人:编制日期:2015年10月22日
项目编号
项目名称
对商品名称进行非空字符串校验
训练对象
软件技术
学时
1
课程名称
3)在文本框中输入商品名称、商品单价和入库数量,单击【入库】按钮,查看数据验证结果。若不输入商品名称,单击【入库】按钮后,提示“请输入商品名称!”信息,要求用户必须输入商品名称。
四、评分标准
1.操作规范(20%)
2.完成对商品名称进行非空字符串校验程序开发(50%)
3.实训报告(30%)
软件开发框架(J2EE)
基于Struts2框架的输入校验功能的实现与应用
基于Struts2框架的输入校验功能的实现与应用李晓明【期刊名称】《电脑知识与技术》【年(卷),期】2013(000)035【摘要】The so-called input validation refers to data submitted to the server before processing the data to verify the legitimacy that only valid data for subsequent processing only, this paper introduces the Struts2 framework based on three types of input vali- dation function of the realization processes, were elaborated with examples of hand-written code verification Strtus2, Xml-based configuration verification and validation based annotation annotation in the actual project development application, summed up the Struts2 framework of input validation in project development necessity, efficiency and easy to achieve scalability and its vari- ous advantages and disadvantages.%所谓输入校验是指数据提交给服务器处理之前,对数据的合法性进行验证,只有合法的数据才会进行后续的处理,本文主要介绍了基于Struts2框架的三种输入校验功能的实现流程,并结合实例分别阐述了Strtus2的手工编写代码验证、基于Xml配置方式的验证和基于Annotation注解验证在实际项目开发中的应用,总结了Struts2框架的输入校验在项目开发中的必要性、高效性和易于扩展性及其各种实现的优缺点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六使用Struts2验证框架验证表单数据
一、实验目的
1.掌握Struts2资源文件的设置和应用
2.掌握Struts2验证框架验证表单数据
二、实验环境
1.Tomcat
2. MyEclipse
三、实验描述
使用Struts2验证框架验证表单数据
a)创建Struts2项目
b)创建动作类RegisterAction,包括的成员变量有:username(String)、
password1(String)、password2(String)、age(int)、birthday(Date)和email(String)
c)创建两个JSP页面,分别用于输入用户的名字、密码、确认密码、年龄、生日和email
的注册页面以及用于显示用户注册时输入的合法信息的页面,保存目录为WebRoot
d)编写动作类资源属性文件,参照下图所示的设置在其中添加一些出错信息
e)创建xml校验配置文件,要求对注册页面中的表单域分别进行以下校验:
1)用户名:不允许为空,且长度在3至10之间
2)密码:不允许为空,且必须是字母或数字,同时长度必须在4~15之间
3)确认密码:必须和密码一致
4)年龄:必须是整数,且必须在1~150之间
5)生日:不允许为空,且必须是日期类型,同时必须在1980-01-01和2014-01-01之间
6)Email:必须符合email格式
要求:
校验不成功以及类型转换不成功时的错误提示信息必须从资源属性文件中获取;必须能输出中文
f)设置配置文件,在其中定义动作包和动作
g)具体步骤请参见第7讲大课课件
h)运行结果如下各图所示:
图1 最初的访问页面
图2 不填写任何内容时提交表单
图3输入不符合格式要求的数据提交表单的结果
图4 输入数据格式符合要求的结果
图5 各项输入数据格式都符合要求后提交表单的显示结果。