一个简单的springboot+mybatis-plus+thymeleaf的学生管理系统
一、登录功能
1.1登录所涉及的功能主要包括拦截器,过滤器,用户在未登录的时候,访问页面会阻止访问的,如图所示:

实现这个功能的主要代码如下所示
1 //拦截器
2 public class LoginHandlerInterceptor implements HandlerInterceptor {
3 //执行之前
4 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
5 Object username = request.getSession().getAttribute("username");
6 if(username ==null){
7 //未登录,返回登录页面
8 request.setAttribute("msg","没有权限,请先登录");
9 request.getRequestDispatcher("/index.html").forward(request,response);
10 return false;
11 }
12 return true;
13 }
解释:首先你登录的时候可以将用户名之类的信息封装在session对象里面,在重启项目后,session的生命周期结束,则Object username = request.getSession().getAttribute("username");
获取的username为空将执行为空操作,实现对用户的拦截。 request.getRequestDispatcher("/index.html").forward(request,response);就是重定向到indext页面。
二、国际化(实现中英文切换)
实现这个功能需要我们在resources下面建立国际化包,如下

解释:login指默认时的,login_en_US.properties指英文,login_zh_CN指中文,在配置文件中,对需要进行转化的进行书写,如下

除此之外还需要在application.properties里面配置
1 #国际化
2 spring.messages.basename=i18n.login
配置完之后将可以实现浏览器端的语言切换(大家应该不明白什么是浏览器端吧)接着向下看

我们在浏览器上可以设置英文还是中文,上面的操作就可以实现中英文切换,但这种方法并不是我们想要的,我们想要的是在登录页面下,点击按钮设置相应的语言,(别着急,向下看) 1
/国际化
2 public class MyLocaleResolver implements LocaleResolver {
3 //解析信息
4 @Override
5 public Locale resolveLocale(HttpServletRequest request) {
6 String l = request.getParameter("l");
7 //默认问英文
8 Locale locale=Locale.getDefault();
9 if(!StringUtils.isEmpty(l)){
10 //根据分割线进行分割
11 String[] split = l.split("_");
12 locale = new Locale(split[0], split[1]);
13 }
14 return locale;
15 }
16
17 @Override
18 public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
19
20 }
21 }
这个是我们中英文切换按钮
1 <a class="btn btn-sm" th:href="@{/index.html(l='zh_cn')}">中文</a>
2 <a class="btn btn-sm"th:href="@{/index.html(l='en_US')}">English</a>
大体解释一下,我们在点击的时候会携带参数的跳转,英文en_US,中文zh_CN,在MyLocaleResolver方法中我们首先获取到是en_US还是zh_CN,然后通过spit方法进行分割,英文分割成en US 中文 zh CN
它们是以key value的形式存储,在springBoot底层可以自动辨别它是什么语言,在springBoot底层默认如下:
1 private static Locale initDefault() {
2 String language, region, script, country, variant;
3 language = AccessController.doPrivileged(
4 new GetPropertyAction("user.language", "en"));//表示英文
5 // for compatibility, check for old user.region property
6 region = AccessController.doPrivileged(
7 new GetPropertyAction("user.region"));
三、mybatis-plus实现CRUD
配置过程很简单详情请看mybatis-plus官网:https://mp.baomidou.com/guide/
在这里想说的就是我在这个里面遇见的一些问题,因为是第一次使用mybatis-plus,所有对于这些并不是太明白,在自己捣鼓了半天,自己差不多明白了,其实参考内容可以访问
https://blog.csdn.net/weixin_45616483/article/details/106011637
四、RestFul风格提交
GET请求
后端:
1 public User selectUserById(@PathVariable("id") Integer id){
2 return userService.getUserById(id);
3 }
前端:localhost:8989/xxx/id
post请求
后端:
1 public User insert(User user){
2 userService.insert(user);
3 return user;
4 }
前端:
1 <form action="http://localhost:8989/XXX" method="post">
2 <input type="text" name="username" value="zhansan"/>
3 <input type="text" name="password" value="123"/>
4 <input type="submit" value="提交"/>
5
6 </form>
PUT请求:
后端
1 public User update(XXX xxxr){
3 return xxxService.update(xxx);
4 }
前端
1 <form action="http://localhost:8989/xxx" method="post">
2 <input type="hidden" name="_method" value="PUT"/>
3 <input type="text" name="username" value="zhangsan"/>
4 <input type="text" name="password" value="123"/>
5 <input type="submit" value="提交"/>
6
7 </form>
DELETE请求
后端:
1 public String delete(@PathVariable("id") Integer id){
2 xxxService.delete(id);
3
4 }
前端:
<form action="http://localhost:8989/xxx/x" method="post">
<input type="text "name="_method" value="DELETE"/>
<input type="submit" value="提交"/> >
一个简单的springboot+mybatis-plus+thymeleaf的学生管理系统的更多相关文章
- 【SpringBoot】SpringBoot/MyBatis/MySql/thymeleaf/Log4j整合工程
工程下载地址:https://files.cnblogs.com/files/xiandedanteng/MMSpringWeb20191027-1.rar 工程目录结构如图: 1.创建工程 有些网文 ...
- 一个简单的SpringBoot入门程序
1. 使用IDEA构建Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmln ...
- Thymeleaf+SpringBoot+Mybatis实现的家庭财务管理系统
项目简介 项目来源于:https://gitee.com/darlingzhangsh/graduation_project 本系统是基于Thymeleaf+SpringBoot+Mybatis.是非 ...
- 7 — 简单了解springboot中的thymeleaf
1.官网学习地址 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 2.什么是thymeleaf? 一张图看明白: 解读: ...
- idea从零搭建简单的springboot+Mybatis
需用到的sql /* Navicat MySQL Data Transfer Source Server : localhost root Source Server Version : 80012 ...
- IntelliJ IDEA搭建一个简单的springboot项目
一.IDEA 安装包 百度网盘链接:https://pan.baidu.com/s/1MYgZaBVWXgy64KxnoeJSyg 提取码:7dh2 IDEA注册码获取:http://idea.lan ...
- springboot+mybatis+springSecurity+thymeleaf
配置步骤: .pom <dependencies> <dependency> <groupId>org.springframework.security</g ...
- 最简单的 springboot 发送邮件,使用thymeleaf模板
1,导入需要的包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- idea搭建一个简单的springboot项目
1.file->new->project 2.选中Spring Initializr 3.填写项目信息: 4.选中Web -> Spring Web
随机推荐
- 老猿学5G:融合计费基于QoS流计费QBC的触发器Triggers
☞ ░ 前往老猿Python博文目录 ░ 一.引言 SMF中的功能体CTF在用户上网时达到一定条件就会向CHF上报流量,而CTF什么时候触发流量上报是由CTF中的触发器来控制的.在<老猿学5G: ...
- 老猿学5G扫盲贴:3GPP规范文档命名规则及同系列文档阅读指南
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在学习5G规范过程中,有些内容把握不定的时候,有时 ...
- python中的Restful
哇,昨天组里进行总结的时候,小哥哥和小姐姐真是把我给秀到了,跟他们一比,我总结的太垃圾了,嘤嘤嘤.因为我平常不怎么总结,总结的话,有word还有纸质的,现在偏向于纸质,因为可以练练字.个人观点是,掌握 ...
- Panda Global 要点聚焦,区块链在数字医疗的落地应
据Panda Global,随着区块链技术影响力的不断扩大,其应用性已涉及更加广泛的领域,不断更新着人们的认知.在区块链技术未介入之前,关于医疗行业和数字经济结合早已不是什么新鲜话题,相关研究不少 但 ...
- 把演讲人的桌面、头像、声音合成后推送到 指定的直播流平台上; 录制电脑桌面、摄像头头像、声音保存为本地视频; 适用于讲课老师、医生等演讲内容保存为视频; 提供PPT嵌入Winform/WPF解决方案,Winform/WPF 中嵌入 office ppt 解决方案
提供PPT嵌入Winform/WPF解决方案,Winform/WPF 中嵌入 office ppt 解决方案 Winform/WPF 中嵌入 office ppt(powerpoint)解决方案示: ...
- Kubernetes Python Client 初体验之node操作
今天讲一下k8s中对于各个实物节点node的操作. 首先是获取所有nodes信息: self.config.kube_config.load_kube_config(config_file=" ...
- python命名切片
命名切片 c = slice(2, 5) a = [1, 2, 3, 4, 5, 6, 7] print(a[c])
- 一篇文章掌握Nginx核心文件结构
1 Nginx核心配置结构 2 配置模块详解 设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为nobody user root; worker进程 ...
- 一文入门Redis
一文入门Redis 目录 一文入门Redis 一.Redis简介 二.常用数据类型 1.String(字符串) 2.Hash(哈希) 3.List(列表) 4.Set(集合) 5.Zset(有序集合) ...
- centos7 安装netstat命令工具
[root@node01 yum.repos.d]# yum install -y net-tools Loaded plugins: fastestmirror Loading mirror spe ...