struts2校验器验证表单避免无效sql查询
2016-05-23 17:13
423 查看
一般网页登陆,最简单的来说是用户名和密码,但是用户可能没有按照正确的格式去输入从而会触发sql查询,但是这类查询会大大加重网站负担。为了避免这类问题,我们可以使用struts2校验器完成我们想要的结果。
我们假设有这样的表单:
现在我们需要设置校验配置,一般在开发中这类配置和登陆模块的action拦截器放一个包下:
当然如果你就这样结束的话,还是有问题的,来看下问题所在。
把开发者模式给开启
<!-- 开发模式 --><constant name="struts.devMode" value="true"></constant>
什么意思?action中没有定义返回为input的类型结果。所以我们还需要在当前struts的配置文件里添上一句:
<result name="input">/WEB-INF/pages/login.jsp</result>
这里我把转向的页面设置成了登陆页面。
这样我们算是完成了配置,刷新网页输入非法数据,校验器会开启工作,并且服务器看不到hibernate查询语句。
我们假设有这样的表单:
用户名:<s:textfield name="loginName" cssClass="msg"></s:textfield>
密 码:<s:password name="loginPwd" cssClass="msg"></s:password>
现在我们需要设置校验配置,一般在开发中这类配置和登陆模块的action拦截器放一个包下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <!-- 默认返回input --> <validators> <!-- 1 登录用户 --> <field name="loginName"> <!-- 1.1 必填 --> <field-validator type="requiredstring"> <message>登录用户名不能为空</message> </field-validator> <!-- 1.2 长度--> <field-validator type="stringlength"> <param name="maxLength">14</param> <param name="minLength">2</param> <message>登录用户名必须在${minLength}-${maxLength}字符之间</message> </field-validator> </field> <!-- 登录密码 --> <!-- 1 登录用户 --> <field name="loginPwd"> <!-- 1.1 必填 --> <field-validator type="requiredstring"> <message>登录密码不能为空</message> </field-validator> <!-- 1.2 长度--> <field-validator type="stringlength"> <param name="maxLength">16</param> <param name="minLength">4</param> <message>登录密码必须在${minLength}-${maxLength}字符之间</message> </field-validator> </field> </validators>
当然如果你就这样结束的话,还是有问题的,来看下问题所在。
把开发者模式给开启
<!-- 开发模式 --><constant name="struts.devMode" value="true"></constant>
Struts Problem Report Struts has detected an unhandled exception: Messages: No result defined for action com.canyugan.crm.staff.web.action.StaffAction and result input Stacktraces No result defined for action com.canyugan.crm.staff.web.action.StaffAction and result input
什么意思?action中没有定义返回为input的类型结果。所以我们还需要在当前struts的配置文件里添上一句:
<result name="input">/WEB-INF/pages/login.jsp</result>
这里我把转向的页面设置成了登陆页面。
这样我们算是完成了配置,刷新网页输入非法数据,校验器会开启工作,并且服务器看不到hibernate查询语句。
相关文章推荐
- Realm Java的学习、应用、总结
- java 静态代码块与非静态代码块
- Jdk1.7自带的FTP文件上传下载
- springMVC (三) HandlerAdapter
- 第一个Java应用
- java基础四---jdk内置工具的使用
- Spring bean的初始化及销毁
- 在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
- 关于在myeclipse 2014中发布web service服务时的报错解决
- Java 5种字符串拼接方式性能比较。
- Realm Java的学习、应用、总结
- 韩顺平Spring框架学习,学习笔记(一)
- 解决java.lang.IllegalStateException: Fragment not attached to Activity
- java的Arrays工具类实战
- Java面向对象编程 第一章 面向对象开发方法概述
- Java面向对象 第一章 面向对象开发方法概述
- Spring 框架的设计理念与设计模式分析
- java.lang.OutOfMemoryError处理错误
- java 数据采集
- Maven设置项目java默认编译版本