一、CURD的Demo
1开发前准备工作

新建一个SpringBoot工程
引入starter-web maven依赖
引入html页面和assert文件夹里的样式文件等等

2 实现访问登录页面

方式一

springboot集成mqttv5 demo_登录页面


方式二

springboot集成mqttv5 demo_登录页面_02

3 实现登录页的国际化

SpringMvc国际化的步骤

1)编写国际化配置文件;
2)使用ResourceBundleMessageSource管理国际化资源文件
3)在页面使用fmt:message取出国际化内容

SpringBoot国际化的步骤
1)、编写国际化配置文件,抽取页面需要显示的国际化消息

a)新建需要国际化的文件
login.properties 没有指定的语言默认的国际化配置
login_zh_CH.properties英文的国际化配置
login_en_US.properties中文的国际化配置

b) 点击下边的Resource Bundle,点击左上角的+添加需要国际化的属性名,对不同配置文件编辑不同的国际化信息

springboot集成mqttv5 demo_配置文件_03


2)、SpringBoot自动配置好了管理国际化资源文件的组件;

springboot集成mqttv5 demo_国际化_04


3)配置国际化的基础名(如果国际化的配置在类路径下并取名为message.properties就不用配置)

springboot集成mqttv5 demo_配置文件_05


4)login页面获取国际化配置信息

springboot集成mqttv5 demo_国际化_06


5)访问登录页

springboot集成mqttv5 demo_登录页面_07


调整浏览器语言访问登录页面(点击google浏览器的右上角的如下标记----设置—高级(浏览器最下面)—语言—添加美国英语–删除中文)

springboot集成mqttv5 demo_国际化_08


重新访问页面

springboot集成mqttv5 demo_国际化_09

6)原理:

国际化Locale(区域信息对象);LocaleResolver(获取区域信息对象)

springboot集成mqttv5 demo_登录页面_10


4 点击中文/English链接切换国际化

springboot集成mqttv5 demo_国际化_11


5 登陆

  1. 新建UserController ,编写login方法
    @PostMapping("/login")=@RequestMapping(value = “/login”,method = RequestMethod.POST)
  2. 登录页表单提交到对应的登录方法,登录信息错误时接收后台的错误信息进行展现

    禁用缓存
    application.properties配置如下,html页面修改之后不会受到之前代码影响
    spring.thymeleaf.cache=false

3 )访问测试

正确登录

springboot集成mqttv5 demo_国际化_12


登录错误

springboot集成mqttv5 demo_拦截器_13


4 )防止表单重复提交(登录以后,刷新页面,重新提交表单)

springboot集成mqttv5 demo_配置文件_14


重定向解决表单重复提交

springboot集成mqttv5 demo_国际化_15


springboot集成mqttv5 demo_国际化_16


5)登录拦截器(用户可以直接访问main.htm而不用做登录,所以需要对请求进行拦截)

用户登陆以后,将登录信息存入session中

springboot集成mqttv5 demo_国际化_17


新建一个拦截器LoginInterceptor,preHandler方法从session获取用户登录信息,获取成功return true放行,获取失败跳转到登录页,return false

springboot集成mqttv5 demo_拦截器_18


对拦截器所拦截的资源进行配置

// addPathPatterns("/**")拦截 任意多重路径下的多层请求,

// excludePathPatterns("/index.html","/","/user/login)除了这些之外登录页面,登录操作

//js,css静态资源springboot已经做好了,不需要手动设置

springboot集成mqttv5 demo_配置文件_19


用户未登录直接访问主页,提示没有权限,访问拦截成功

springboot集成mqttv5 demo_拦截器_20