javaee springMVC session的使用

controller

java 复制代码
package com.test.controller;

import com.test.pojo.Address;
import com.test.pojo.Users;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/users")
//指定放入model中的某个变量 存入session中
@SessionAttributes(value="sessionUser2")
public class UsersController {

   

    //存入session方式1:原生session
    @RequestMapping("/getUser6")
    public String getUser6(HttpServletRequest request)
    {
        Users user=new Users(6,"daimenglaoshi6","888",new Address(1,"shanghai"),new Date(),888888);

        HttpSession session= request.getSession();

        session.setAttribute("sessionUser",user);

        return "showSessionUser";
    }

    //存入session方式2:用注解的方式  @SessionAttributes(value="sessionUser2")
    @RequestMapping("/getUser7")
    public ModelAndView getUser7() {

        ModelAndView modelAndView=new ModelAndView();

        Users user=new Users(7,"daimenglaoshi7","888",new Address(1,"shanghai"),new Date(),888888);

        modelAndView.addObject("sessionUser2",user);

        modelAndView.setViewName("showSessionUser2");

        return modelAndView;
    }

    @RequestMapping("/destroySession")
    public String destroySession(HttpServletRequest request){

          HttpSession session= request.getSession();

          //销毁session
          session.invalidate();

          return "showDestroySession";
    }


  

   






}

jsp

html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: HIAPAD
  Date: 2019/12/5
  Time: 19:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${sessionScope.sessionUser.uname}<br/>

${sessionScope.sessionUser2.uname}<br/>
</body>
</html>
html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: HIAPAD
  Date: 2019/12/5
  Time: 19:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${sessionUser.uname}
</body>
</html>
html 复制代码
<%--
  Created by IntelliJ IDEA.
  User: HIAPAD
  Date: 2019/12/5
  Time: 19:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${sessionScope.sessionUser2.uname}
</body>
</html>

两种方式存储session

方式一

原生方式

方式二

注解方式

推荐

推荐使用原生方式,因为经过测试,销毁方法只能销毁原生方式创建的session

相关推荐
zhangxuyu11185 分钟前
全栈工程师项目练习记录
java·spring boot
讓丄帝愛伱27 分钟前
阿里开源 Java 诊断神器Arthas
java·linux·开发语言·开源
人间有清欢44 分钟前
扩展BaseMapper类
java·mybatis-plus·mp
9号达人1 小时前
Java19 新特性详解与实践
java·后端·面试
richxu202510011 小时前
Java开发环境搭建之 9.使用Docker Compose 安装部署RabbitMQ
java·docker·java-rabbitmq
卡布叻_星星1 小时前
后端笔记之MyBatis 通过 collection 标签实现树形结构自动递归查询
java·笔记·mybatis
Achou.Wang1 小时前
Kubernetes 的本质:一个以 API 为中心的“元操作系统”
java·容器·kubernetes
z晨晨1 小时前
Java求职面试实战:从Spring到微服务的全面挑战
java·数据库·spring·微服务·面试·技术栈
麦兜*1 小时前
Redis多租户资源隔离方案:基于ACL的权限控制与管理
java·javascript·spring boot·redis·python·spring·缓存