zoukankan      html  css  js  c++  java
  • springboot+mybatis登录注册

    接上上一篇博客的继续往下做,上一篇已经实现了mybatis自动生成代码,和连接数据库测试部分

    本篇我们添加一些功能,实现登录注册,时间原因,前端实现的很粗糙,以后有时间再改吧

    首先看一下数据库的构成,作为一个例子实现的简单点

    看了一下mybatis自动生成的代码,不太好用,所以我们自己手写sql,然后按照Dao,Service,Controller的顺序修改代码

    工程结构:

    具体的代码放Github里了

    看一下结果吧

    首页:

    点击注册:

     下一步实现拦截器、shiro等功能

    5.26更新:

    实现拦截器的功能,如果不登录的话,就自动跳转到登录页面,只有登录了才能访问别的页面

    这次的文件结构如下:

    新加拦截器:

     1 import org.springframework.web.servlet.HandlerInterceptor;
     2 import org.springframework.web.servlet.ModelAndView;
     3 
     4 import javax.servlet.http.HttpServletRequest;
     5 import javax.servlet.http.HttpServletResponse;
     6 import javax.servlet.http.HttpSession;
     7 
     8 public class MyInterceptor implements HandlerInterceptor {
     9     //在请求处理之前进行调用(Controller方法调用之前
    10     @Override
    11     public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
    12         HttpSession session = httpServletRequest.getSession();
    13         Object user = session.getAttribute("session_user"); //获取登录的session信息
    14         if(user != null){
    15             System.out.println(user);
    16             return true;
    17         }
    18         else{
    19             System.out.println("没登录");
    20             httpServletRequest.setAttribute("msg","没有权限请先登陆");
    21             httpServletResponse.sendRedirect("/");  //未登录自动跳转界面
    22             return false;
    23         }
    24     }
    25 
    26     //请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
    27     @Override
    28     public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
    29         System.out.println("postHandle被调用
    ");
    30     }
    31 
    32     //在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
    33     @Override
    34     public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
    35         System.out.println("afterCompletion被调用
    ");
    36     }
    37 }
    MyInterceptor

    新加配置文件:

     1 import com.example.mybatis.interceptor.MyInterceptor;
     2 import org.springframework.context.annotation.Configuration;
     3 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
     4 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
     5 
     6 @Configuration
     7 public class WebMvcConfig implements WebMvcConfigurer {
     8     /**
     9      * 注册拦截器
    10      */
    11     @Override
    12     public void addInterceptors(InterceptorRegistry registry) {
    13         //addPathPattern后跟拦截地址,excludePathPatterns后跟排除拦截地址
    14         registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/userLogin").excludePathPatterns("/index").excludePathPatterns("/");
    15     }
    16 }
    WebMvcConfig

    并修改Controller中的一些东西

  • 相关阅读:
    oracle中 start with .. connect by prior.. 用法简介
    Java中com.jcraft.jsch.ChannelSftp讲解
    linux修改系统时间和linux查看时区、修改时区的方法
    map.containsKey
    Struts2中struts.multipart.maxSize配置
    oracle定时器job的使用
    java的System.getProperty()方法可以获取的值
    夜间模式的开启与关闭,父模板的制作
    开始Flask项目
    完成登录与注册页面的前端
  • 原文地址:https://www.cnblogs.com/flyuz/p/10901109.html
Copyright © 2011-2022 走看看