java session创建与获取

本文详细介绍了基于会话的用户认证流程,包括登录接口的实现,通过验证用户名和密码来获取用户实体对象,并创建session进行缓存。此外,还展示了如何在其他接口调用中获取session,实现用户信息的读取。通过具体代码示例,阐述了登录和获取缓存的过程,以及不同用户间会话独立性的保障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、流程

登录接口--》验证用户名密码--》获取用户实体对象--》创建session (key,value)

其他接口调用--》获取session(key)  

 

二、代码

 

     //登录并写入缓存
	@RequestMapping("a/login") 
	@ResponseBody
	public String loginAction(HttpSession session, String userName, String password, HttpServletRequest request) {
		
		HrUser hr=new HrUser();
		hr.setNickName(userName);
		session.setAttribute("userInfo", hr);						
		return "";
	}
//对外获取缓存 @RequestMapping("a/logb") // , method = RequestMethod.POST) @ResponseBody public String logb() { Object pp=getSession().getAttribute("userInfo"); String result="1"; if(pp!=null) { result=((HrUser)pp).getNickName(); } return result; } //获取会话缓存内容 private HttpSession getSession() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); return request.getSession(); }

  

三、效果

A用户 本地运行代码,先调用   a/login接口传参?userName=1234    ,再调用 a/logb  会返回1234   一存一取成功

B用户 在A用户执行完存取操作后,执行  a/logb  ,不会返回任何东西,因为只有A用户的会话才有缓存,这时 B去执行 a/login接口传参?userName=12345    ,再调用 a/logb  会返回12345      A用户执行  调用 a/logb  只会返回自己会话的缓存1234  

 

转载于:https://www.cnblogs.com/wdw31210/p/10531280.html

Java 中,Session 是一种存储在服务器端的数据结构,用于存储用户在访问 Web 应用时的会话信息。在 Web 应用中,Session 经常用于保持用户登录状态、存储用户购物车信息、存储用户偏好设置等。 以下是创建获取 Session 的步骤: 创建 Session: 1. 在 Servlet 中,调用 HttpServletRequest 的 getSession() 方法,即可获取当前用户的 Session 对象。如果当前用户没有 Session,则该方法会自动创建一个新的 Session。 HttpSession session = request.getSession(); 2. 如果需要设置 Session 的过期时间,可以调用 setMaxInactiveInterval() 方法。该方法接收一个以秒为单位的整数值,表示 Session 的最大空闲时间。 session.setMaxInactiveInterval(1800); // 设置 Session 的最大空闲时间为 30 分钟 3. 如果需要向 Session 中添加数据,可以使用 setAttribute() 方法。该方法接收两个参数,第一个参数是数据的键名,第二个参数是数据的值。 session.setAttribute("username", "张三"); // 向 Session 中添加一个名为 "username" 的键值对 获取 Session: 1. 在 Servlet 中,调用 HttpServletRequest 的 getSession() 方法,即可获取当前用户的 Session 对象。 HttpSession session = request.getSession(); 2. 如果需要获取 Session 中的数据,可以使用 getAttribute() 方法。该方法接收一个参数,表示要获取数据的键名。如果 Session 中不存在该键名,则返回 null。 String username = (String) session.getAttribute("username"); // 从 Session获取名为 "username" 的键对应的值 需要注意的是,Session 中存储的数据通常是敏感信息,因此需要采取一定的安全措施来保护 Session。例如,可以使用 HTTPS 协议来加密通信,使用 SSL/TLS 证书来验证服务器的身份,使用 Cookie 来保存 Session ID 等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值