七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

一、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 登陆

  1. 新建UserController ,编写login方法
    @PostMapping("/login")=@RequestMapping(value = “/login”,method = RequestMethod.POST)
    在这里插入图片描述
  2. 登录页表单提交到对应的登录方法,登录信息错误时接收后台的错误信息进行展现
    在这里插入图片描述
    禁用缓存
    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已经做好了,不需要手动设置
在这里插入图片描述
用户未登录直接访问主页,提示没有权限,访问拦截成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值