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中使用json与前台Ajax数据交互的方法

    Java中使用json与前台Ajax数据交互的方法

    这篇文章主要为大家详细介绍了Java中使用json与前台Ajax数据交互的方法,分享Ajax获取显示Json数据的一种方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • springboot jta atomikos实现分布式事物管理

    springboot jta atomikos实现分布式事物管理

    这篇文章主要介绍了springboot jta atomikos实现分布式事物管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot注解梳理(小结)

    SpringBoot注解梳理(小结)

    这篇文章主要介绍了SpringBoot注解梳理(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • SpringBoot根据目录结构自动配置Url前缀方式

    SpringBoot根据目录结构自动配置Url前缀方式

    这篇文章主要介绍了SpringBoot根据目录结构自动配置Url前缀方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 基于swing开发弹幕播放器

    基于swing开发弹幕播放器

    这篇文章主要为大家详细介绍了基于swing实现弹幕播放器的开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Intellij IDEA十大快捷键

    Intellij IDEA十大快捷键

    Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.这篇文章主要介绍了Intellij IDEA十大快捷键,需要的朋友可以参考下
    2018-03-03
  • JDK1.8使用的垃圾回收器和执行GC的时长以及GC的频率方式

    JDK1.8使用的垃圾回收器和执行GC的时长以及GC的频率方式

    这篇文章主要介绍了JDK1.8使用的垃圾回收器和执行GC的时长以及GC的频率方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 微信开发--自定义菜单查询返码乱码的解决方法

    微信开发--自定义菜单查询返码乱码的解决方法

    本篇文章主要介绍了微信开发--自定义菜单查询返码乱码的解决方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Spring Get请求与post请求的实现

    Spring Get请求与post请求的实现

    在Spring中,GET请求和POST请求是两种常见的HTTP请求方法,用于与服务器进行交互,本文详细的介绍一下Spring Get请求与post请求的实现,感兴趣的可以了解一下
    2023-10-10
  • Java秒杀系统:web层详解

    Java秒杀系统:web层详解

    本文主要介绍了如何设计一个秒杀系统的web层相关知识。具有很好的参考价值。下面跟着小编一起来看下吧,希望能够给你带来帮助
    2021-10-10

最新评论