SpringBoot登录、退出、获取用户信息的session处理方案

 更新时间:2023年08月21日 09:09:10   作者:全栈技术负责人  
这篇文章主要介绍了SpringBoot登录、退出、获取用户信息的session处理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

SpringBoot登录、退出、获取用户信息的session处理

1、登录方法:login

@PostMapping("/user/login")
	public ResponseVo<User> login(@Valid @RequestBody UserLoginForm userLoginForm,
								  HttpSession session) {
		ResponseVo<User> userResponseVo = userService.login(userLoginForm.getUsername(), userLoginForm.getPassword());
		//设置Session
		session.setAttribute(MallConst.CURRENT_USER, userResponseVo.getData());
		log.info("/login sessionId={}", session.getId());
		return userResponseVo;
	}

2、获取用户信息:user

//session保存在内存里,改进版:token+redis
	@GetMapping("/user")
	public ResponseVo<User> userInfo(HttpSession session) {
		log.info("/user sessionId={}", session.getId());
		User user = (User) session.getAttribute(MallConst.CURRENT_USER);
		return ResponseVo.success(user);
	}

3、退出方法:logout

@PostMapping("/user/logout")
	public ResponseVo logout(HttpSession session) {
		log.info("/user/logout sessionId={}", session.getId());
		session.removeAttribute(MallConst.CURRENT_USER);
		return ResponseVo.success();
	}

session获取用户和退出操作

session获取    [[${session.loginUser}]]

  <p><span>下午好!</span><span style="color: #fff21b"> [[${session.loginUser}]]</span> , 欢迎你!</p>

退出:

1.页面

  <li><a th:href="@{/logout}" href="login.html">退出系统</a></li>

2.controller控制

package com.cc.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.util.StringUtils;
import javax.servlet.http.HttpSession;
import java.util.Map;
@Controller
public class LoginController {
    @PostMapping("/login")
    public String login(HttpSession session, String username, String password, Map<String,Object>map){
//        判断用户名不为空,且密码为123
          if(!StringUtils.isEmpty(username) && "123".equals(password)){
              //登录成功
              //重定向 redirect: 可以重定向到任何一个请求中(包括其他项目),地址栏改变
//              return "main/index"; //在静态资源中查找文件
              session.setAttribute("loginUser",username);
              return "redirect:/main.html";
          }
//          登陆失败
           map.put("msg","用户名或密码错误");
          return "main/login";
    }
//    退出登录
    @GetMapping("/logout")
    public String logout(HttpSession session){
//       1.清空session中的用户信息
        session.removeAttribute("loginUser");
//       2.再将session进行注销
        session.invalidate();
//       3.返回登录页面   index.html之前的视图映射
        return "redirect:/index.html";
    }
}

到此这篇关于SpringBoot登录、退出、获取用户信息的session处理的文章就介绍到这了,更多相关springboot退出登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中BigInteger类的使用方法详解(全网最新)

    Java中BigInteger类的使用方法详解(全网最新)

    这篇文章主要介绍了Java中BigInteger类的使用方法详解,常用最全系列,本章作为笔记使用,内容比较全面,但常用的只有:构造函数,基本运算以及compareTo(),intValue(),setBit(),testBit()方法,需要的朋友可以参考下
    2023-05-05
  • Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常

    Caused by: java.lang.ClassNotFoundException: org.objectweb.a

    这篇文章主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • java环境变量的配置方法图文详解【win10环境为例】

    java环境变量的配置方法图文详解【win10环境为例】

    这篇文章主要介绍了java环境变量的配置方法,结合图文形式详细分析了win10环境下java环境变量的配置方法与相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 最小树形图模板朱刘算法分享

    最小树形图模板朱刘算法分享

    这篇文章主要介绍了最小树形图模板朱刘算法,有需要的朋友可以参考一下
    2014-01-01
  • Java Stream流之求和的实现

    Java Stream流之求和的实现

    这篇文章主要介绍了Java Stream流之求和的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring Boot实现自动发送邮件

    Spring Boot实现自动发送邮件

    这篇文章主要为大家详细介绍了Spring Boot实现自动发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Springboot 如何获取上下文对象

    Springboot 如何获取上下文对象

    这篇文章主要介绍了Springboot 如何获取上下文对象的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java实现PDF转图片的三种方法

    Java实现PDF转图片的三种方法

    有些时候我们需要在项目中展示PDF,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好,Java使用各种技术将pdf转换成图片格式,并且内容不失帧,本文给大家介绍了三种方法实现PDF转图片的案例,需要的朋友可以参考下
    2023-10-10
  • Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款

    Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款

    微信支付我们主要聚焦于这三种支付方式,其中JSPAI与APP主要与uniapp开发微信小程序与APP对接,本文主要介绍了Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • servlet实现文件下载的步骤及说明详解

    servlet实现文件下载的步骤及说明详解

    这篇文章主要为大家详细介绍了servlet实现文件下载的步骤及说明,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论