一个简单的springboot+mybatis-plus+thymeleaf的学生管理系统

1、登陆功能

1.1登陆所涉及的功能主要包括拦截器,过滤器,用户在未登陆的时候,访问页面会阻止访问的,如图所示:html

 

 

 实现这个功能的主要代码以下所示前端

 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");spring

获取的username为空将执行为空操做,实现对用户的拦截。 request.getRequestDispatcher("/index.html").forward(request,response);就是重定向到indext页面。后端

2、国际化(实现中英文切换)

实现这个功能须要咱们在resources下面创建国际化包,以下浏览器

 

 

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

 

 

除此以外还须要在application.properties里面配置mybatis

1 #国际化
2 spring.messages.basename=i18n.login

配置完以后将能够实现浏览器端的语言切换(你们应该不明白什么是浏览器端吧)接着向下看app

 

 

 咱们在浏览器上能够设置英文仍是中文,上面的操做就能够实现中英文切换,但这种方法并非咱们想要的,咱们想要的是在登陆页面下,点击按钮设置相应的语言,(别着急,向下看) 1ide

/国际化
 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 }

这个是咱们中英文切换按钮post

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"));

3、mybatis-plus实现CRUD

配置过程很简单详情请看mybatis-plus官网:https://mp.baomidou.com/guide/

在这里想说的就是我在这个里面碰见的一些问题,由于是第一次使用mybatis-plus,全部对于这些并非太明白,在本身捣鼓了半天,本身差很少明白了,其实参考内容能够访问

https://blog.csdn.net/weixin_45616483/article/details/106011637

4、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="提交"/>

>
相关文章
相关标签/搜索