一、CURD的Demo
1开发前准备工作
新建一个SpringBoot工程
引入starter-web maven依赖
引入html页面和assert文件夹里的样式文件等等
2 实现访问登录页面
方式一
方式二
3 实现登录页的国际化
SpringMvc国际化的步骤
1)编写国际化配置文件;
2)使用ResourceBundleMessageSource管理国际化资源文件
3)在页面使用fmt:message取出国际化内容
SpringBoot国际化的步骤
1)、编写国际化配置文件,抽取页面需要显示的国际化消息
a)新建需要国际化的文件
login.properties 没有指定的语言默认的国际化配置
login_zh_CH.properties英文的国际化配置
login_en_US.properties中文的国际化配置
b) 点击下边的Resource Bundle,点击左上角的+添加需要国际化的属性名,对不同配置文件编辑不同的国际化信息
2)、SpringBoot自动配置好了管理国际化资源文件的组件;
3)配置国际化的基础名(如果国际化的配置在类路径下并取名为message.properties就不用配置)
4)login页面获取国际化配置信息
5)访问登录页
调整浏览器语言访问登录页面(点击google浏览器的右上角的如下标记----设置—高级(浏览器最下面)—语言—添加美国英语–删除中文)
重新访问页面
6)原理:
国际化Locale(区域信息对象);LocaleResolver(获取区域信息对象)
4 点击中文/English链接切换国际化
5 登陆
- 新建UserController ,编写login方法
@PostMapping("/login")=@RequestMapping(value = “/login”,method = RequestMethod.POST)
- 登录页表单提交到对应的登录方法,登录信息错误时接收后台的错误信息进行展现
禁用缓存
application.properties配置如下,html页面修改之后不会受到之前代码影响
spring.thymeleaf.cache=false
3 )访问测试
正确登录
登录错误
4 )防止表单重复提交(登录以后,刷新页面,重新提交表单)
重定向解决表单重复提交
5)登录拦截器(用户可以直接访问main.htm而不用做登录,所以需要对请求进行拦截)
用户登陆以后,将登录信息存入session中
新建一个拦截器LoginInterceptor,preHandler方法从session获取用户登录信息,获取成功return true放行,获取失败跳转到登录页,return false
对拦截器所拦截的资源进行配置
// addPathPatterns("/**")拦截 任意多重路径下的多层请求,
// excludePathPatterns("/index.html","/","/user/login)除了这些之外登录页面,登录操作
//js,css静态资源springboot已经做好了,不需要手动设置
用户未登录直接访问主页,提示没有权限,访问拦截成功