一般对于比较重要的数据,前端做完校验之后,还需要后端校验。
因为:前端的校验不安全,用户可以绕过js,或者修改元素对应的前端代码。来通过校验。
比如:右键元素,点击检查。可以对代码进行修改。
后端校验,我们使用SpringMVC通过的JSR303进行校验。
包括数据库里面需要对字段empName加上唯一性约束。
想要项目支持JSR303校验,需要导入Hibernate-Validator pom文件。
org.hibernate hibernate-validator5.4.1.Final
当前项目的所有pom文件:
4.0.0 com.rtl ssm-crud1.0-SNAPSHOT war 8 8 org.springframework spring-webmvc4.3.7.RELEASE com.fasterxml.jackson.core jackson-databind2.8.8 org.springframework spring-jdbc4.3.7.RELEASE org.springframework spring-aspects4.3.7.RELEASE org.mybatis mybatis3.4.2 org.mybatis mybatis-spring1.3.1 org.mybatis.generator mybatis-generator-core1.3.7 c3p0 c3p00.9.1.2 mysql mysql-connector-java8.0.27 jstl jstl1.2 javax.servlet javax.servlet-api3.1.0 junit junit4.12 org.springframework spring-test4.3.7.RELEASE com.github.pagehelper pagehelper5.0.0 org.hibernate hibernate-validator5.4.1.Final
如何使用JSR校验呢?
第一步:
我们需要对empName设置正则表达式规则:
java bean类的Employee对象的属性empName上面添加注解:@Pattern
对于属性empName:
@Pattern(regexp = "^([a-zA-Z0-9_-]|[\u4E00-\u9FA5]){2,20}$", message = "用户名必须为2到12个字符,允许中文,英文大小写,数字,下划线,减号") private String empName;
对于属性email
可以使用注解@Email
也可以写@Pattern
@Pattern(regexp = "^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})", message = "邮箱格式不正确") private String email;
第二步:
后面这个BindingResult对象是将校验的结果进行了封装。
@RequestMapping(value = "/emp",method = RequestMethod.POST) @ResponseBody public Msg saveEmp(@Valid Employee employee , BindingResult result){ employeeService.saveEmployee(employee); return Msg.success(); }
27、
2021-11-27 18:33
2021-11-21 19:53
1、conttroller
2、index.jsp
我们之前绑定的保存按钮事件:
先进行校验,校验成功之后,再执行新增数据到DB中。
现在补充的就是:
向后端发送ajax请求,新增数据到DB之前,需要校验。
所有index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>首页 <% pageContext.setAttribute("APP_PATH",request.getContextPath()); %> 员工添加欢迎分享,转载请注明来源:内存溢出
评论列表(0条)