SpringBoot使用Session

  • 引入依赖 
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>
  • session常用方法
public Object getAttribute(String name)
返回session对象中与指定名称绑定的对象,如果不存在则返回null

public Enumeration getAttributeNames()
返回session对象中所有的对象名称

public long getCreationTime()
返回session对象被创建的时间, 以毫秒为单位,从1970年1月1号凌晨开始算起

public String getId()
返回session对象的ID

public long getLastAccessedTime()
返回客户端最后访问的时间,以毫秒为单位,从1970年1月1号凌晨开始算起

public int getMaxInactiveInterval()
返回最大时间间隔,以秒为单位,servlet 容器将会在这段时间内保持会话打开

public void invalidate()
将session无效化,解绑任何与该session绑定的对象

public boolean isNew()
返回是否为一个新的客户端,或者客户端是否拒绝加入session

public void removeAttribute(String name)
移除session中指定名称的对象

public void setAttribute(String name, Object value) 
使用指定的名称和值来产生一个对象并绑定到session中

public void setMaxInactiveInterval(int interval)
用来指定时间,以秒为单位,servlet容器将会在这段时间内保持会话有效

 

  • 向session添加内容
    @RequestMapping(value = "/addSession", method = RequestMethod.GET)
    public Map<String, String> addSession (HttpServletRequest request){
        String sessionId = request.getSession().getId();
        String requestURI = request.getRequestURI() + ":"  +  request.getServerPort();
        // 向session中保存用户信息
        request.getSession().setAttribute("userinfo", "{uid:1,username:tony}");

        Map<String, String> sessionInfoMap = new HashMap<>(4);
        // 获取session中的用户的信息
        String userinfo = (String) request.getSession().getAttribute("userinfo");

        sessionInfoMap.put("sessionId", sessionId);
        sessionInfoMap.put("requestURI", requestURI);
        if (userinfo != null && ! userinfo.isEmpty()) {
            sessionInfoMap.put("userinfo", userinfo);
        }
        return sessionInfoMap;
    }
  • 从session中删除内容
    @RequestMapping(value = "/clearSession", method = RequestMethod.GET)
    public Map<String, String> clearSession (HttpServletRequest request){
        String sessionId = request.getSession().getId();
        String requestURI = request.getRequestURI() + ":"  +  request.getServerPort();

        // 移除session中的用户的信息
        request.getSession().removeAttribute("userinfo");

        Map<String, String> sessionInfoMap = new HashMap<>(3);
        // 获取session中的用户的信息
        String userinfo = (String) request.getSession().getAttribute("userinfo");
        sessionInfoMap.put("sessionId", sessionId);
        sessionInfoMap.put("requestURI", requestURI);
        if (userinfo != null && ! userinfo.isEmpty()) {
            sessionInfoMap.put("userinfo", userinfo);
        }
        return sessionInfoMap;
    }

测试JSP

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<%
    String userinfo = (String)session.getAttribute("userinfo");
    if (userinfo == null || userinfo.isEmpty()) {
        pageContext.forward("error.jsp");
    }
%>

<html>
    <head>
        <meta charset="utf-8">
        <title>hello world</title>
    </head>
    <body>Hello World
        <br/>
        sessionId:<% out.print( session.getId()); %>
        <br/>
        用户:<% out.print(session.getAttribute("userinfo")); %>
    </body>
</html>

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值