SpringBoot登录判断过程代码实例

 更新时间:2019年12月27日 10:56:14   转载 作者:HK886  
这篇文章主要介绍了SpringBoot登录判断代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了SpringBoot登录判断代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

<!--  html登录代码  -->

    <div class="box">
      <div class="title">登录</div>
      <div class="input">
        <label for="name">用户名</label>
        <input type="text" name="name" id="name">
        <span class="spin"></span>
      </div>
      <div class="input">
        <label for="pass">密码</label>
        <input type="password" name="pass" id="pass">
        <span class="spin"></span>
      </div>
      <div class="button login">
        <button>
          <span>登录</span>
          <i class="fa fa-check"></i>
        </button>
      </div>
      <a href="javascript:" rel="external nofollow" class="pass-forgot">忘记密码?</a>
    </div>
<!-- javasript 登录代码 -->
$(".button").click(function(e) {
   $("button", this).addClass('active');
   if ($(".button").hasClass("login")){
     $.ajax({
      url:"/cch/dologin",
      type:"POST",
      data:{
        name:$("#name").serialize(),
        pass:$("#pass").serialize(),
      },
      success:function (result) {
        if(result.code==100){
         window.location.href="/cch/main" rel="external nofollow" ;
        }else {
         alert(result.extendInfo.login_error);
        }
      }
     })
   }
  })
//JsonMsg工具类
public class JsonMsg {
  private int code;
  private String msg;
  private Map<String,Object> extendInfo = new HashMap<String, Object>();

  public int getCode() {
    return code;
  }

  public void setCode(int code) {
    this.code = code;
  }

  public String getMsg() {
    return msg;
  }

  public void setMsg(String msg) {
    this.msg = msg;
  }

  public Map<String, Object> getExtendInfo() {
    return extendInfo;
  }

  public void setExtendInfo(Map<String, Object> extendInfo) {
    this.extendInfo = extendInfo;
  }

  public static JsonMsg success(){
    JsonMsg res = new JsonMsg();
    res.setCode(100);
    res.setMsg("操作成功");
    return res;
  }

  public static JsonMsg fail(){
    JsonMsg res = new JsonMsg();
    res.setCode(200);
    res.setMsg("操作失败");
    return res;
  }

  public JsonMsg addInfo(String key,Object object){
    this.extendInfo.put(key,object);
    return this;
  }
}
/**
* controller
* 判断用户名和密码是否正确
*/
  @RequestMapping(value = "/cch/dologin",method = RequestMethod.POST)
  @ResponseBody
  public JsonMsg dologin(HttpServletRequest request){
    String username = request.getParameter("name");
    String password = request.getParameter("pass");
    System.out.println(username+" "+password);
    if (!"name=admin".equals(username) || !"pass=123".equals(password)){
      return JsonMsg.fail().addInfo("login_error","用户名或密码错误");
    }
    request.getSession().setAttribute("islogin","true");//如果正确,则在seesion里添加判断属性,可供拦截器判断是否登录过
    return JsonMsg.success();
  }
//自定义拦截器
//如果未登录则跳回登录页

public class SysInterceptor extends HandlerInterceptorAdapter {
  /**
   * 进入拦截器后首先进入的方法
   * 返回false则不再继续执行
   * 返回true则继续执行
   */
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("我是拦截器:我进来了");
    HttpSession session = request.getSession();
    String islogin = (String)session.getAttribute("islogin");
    if(islogin==null){
      System.out.println("用户没有登录");
      response.sendRedirect("/cch/login");
      return false;
    }
    System.out.println("用户已登录");
    return true;
  }

  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

  }
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

  }
}
//把拦截器添加到springboot中

@Configuration
public class SessionConfig implements WebMvcConfigurer {
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
//拦截有 "/cch" 前缀的路径,除了 "/cch/login","/cch/dologin"
    registry.addInterceptor(new SysInterceptor()).excludePathPatterns("/cch/login","/cch/dologin").addPathPatterns("/cch/**");
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java编程—在测试中考虑多态

    Java编程—在测试中考虑多态

    这篇文章主要介绍了Java编程—在测试中考虑多态,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    大家在使用Intellij IDEA 的时候会经常遇到各种乱码问题,今天小编给大家分享一些关于Intellij IDEA 2019 最新乱码问题及解决必杀技,感兴趣的朋友跟随小编一起看看吧
    2020-04-04
  • 全面解析SpringBoot自动配置的实现原理

    全面解析SpringBoot自动配置的实现原理

    这篇文章主要介绍了全面解析SpringBoot自动配置的实现原理的相关资料,需要的朋友可以参考下
    2017-05-05
  • 基于springboot和redis实现单点登录

    基于springboot和redis实现单点登录

    这篇文章主要为大家详细介绍了基于springboot和redis实现单点登录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Java多线程 线程状态原理详解

    Java多线程 线程状态原理详解

    这篇文章主要介绍了Java多线程 线程状态原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java 14 发布了,你还会使用Lombok?

    Java 14 发布了,你还会使用Lombok?

    2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载。在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 359: Records,需要的朋友可以参考下
    2020-04-04
  • Spring MVC常用客户端参数接收方式详解

    Spring MVC常用客户端参数接收方式详解

    这篇文章主要介绍了Spring MVC常用客户端参数接收方式详解,文章主要介绍了几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Java 8新特性 内建函数式接口详解

    Java 8新特性 内建函数式接口详解

    这篇文章主要介绍了Java 8新特性 内建函数式接口详解的相关资料,这里主要介绍4个基本函数式接口,需要的朋友可以参考下
    2016-12-12
  • Java中四种线程池的使用示例详解

    Java中四种线程池的使用示例详解

    这篇文章主要给大家介绍了关于Java中四种线程池的使用方法,四种线程池分别包括FixedThreadPool、CachedThreadPool、ScheduledThreadPool以及SingleThreadExecutor,文中给出了详细的示例代码供大家参考,需要的朋友们下面来一起看看吧。
    2017-08-08
  • Solr通过特殊字符分词实现自定义分词器详解

    Solr通过特殊字符分词实现自定义分词器详解

    最近因为工作的需要,要做一个分词器,通过查找相关的资料最终用solr实现了,下面这篇文章主要给大家介绍了关于Solr通过特殊字符分词实现自定义分词器的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-09-09

最新评论