《SSM项目开发实战 学校教务管理系统 (SpringMVC+MyBatis)》项目演示
简 介
系统一共分为两类用户:超级管理员和老师;
超级管理员具备权限:
超级管理员登录成功之后,可以对自己的个人信息进行修改,并且可以创建老师账号,但是默认密码设置为12356,超级管理员可以创建班级。对于管理员类型通过fl。。。
老师账号权限:
可以创建学生信息,对学生信息进行维护,增加学生成绩信息。。。。
3.1、为什么要后台验证
```javascript
```javascript
在前台(jsp)页面中,如果现在使用的layui前端框架,那么我们的验证可以在input标签中定义,如果有非法用户通过地址重写的方式进行数据提交那么我们的后台如果不对数据进行验证,那么我们的数据库将不在安全。
通过地址重写的方式进行数据更新操作,那么安全就存在隐患:http://localhost:8080/pms/AdminLoginAction/login.html?aid=admin&password=shdflkhsd
需要编写一个自动检查工具类,对于后台可以验证的数据类型包括:int、date、double、float、string;
范例:定义自定义数据验证过滤器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*.html"/>
<bean class="cn.xmkeshe.utils.validation.ValidationInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
范例:定义资源文件
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<array>
<value>Validation</value>
</array>
**3.2、编写真实验证主题类****
本类主要负责数据验证处理,所有的控制层数据都需要通过这个类进行验证,但是这个类不会被直接调用。
范例:定义数据验证主题类
package cn.xmkeshe.utils.validation;
/**
* <li>此类负责数据验证,验证数据类型包括:int、string、double、date</li>
*/
public class ValidationUtils {
/**
* 字符串验证
* @param str 表示要执行验证的字符串
* @return
*/
public static boolean isString(String str){
if(str == null || "".equals(str)){
return false;
}
return true;
}
/**
* 数字验证
* @param str 表示要执行验证的数字
* @return
*/
public static boolean isInt(String str){
if(isString(str)){
return str.matches("\\d+");
}
return false;
}
/**
* 小数验证
* @param str 表示要执行验证的数字
* @return
*/
public static boolean isDouble(String str){
if(isString(str)){
return str.matches("\\d+(\\.+\\d+)?");
}
return false;
}
/**
* 对日期进行验证操作
* @param str 表示要执行验证的日期字符串
* @return
*/
public static boolean isDate(String str){
if(isString(str)){
if(str.matches("\\d{4}-\\d{2}-\\d{2}")) {
return true;
}else{
return str.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
}
}
return false;
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200610095508299.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lsY3Rv,size_16,color_FFFFFF,t_70)