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

相关推荐
2501_941865636 小时前
从事件驱动到异步架构的互联网工程语法构建与多语言实践分享
java·开发语言·jvm
全靠bug跑13 小时前
Spring Cache 实战:核心注解详解与缓存过期时间配置
java·redis·springcache
聆风吟º13 小时前
【数据结构手札】空间复杂度详解:概念 | 习题
java·数据结构·算法
计算机程序设计小李同学13 小时前
基于SpringBoot的个性化穿搭推荐及交流平台
java·spring boot·后端
是一个Bug13 小时前
50道核心JVM面试题
java·开发语言·面试
朱朱没烦恼yeye13 小时前
java基础学习
java·python·学习
她和夏天一样热14 小时前
【观后感】Java线程池实现原理及其在美团业务中的实践
java·开发语言·jvm
郑州光合科技余经理14 小时前
技术架构:上门服务APP海外版源码部署
java·大数据·开发语言·前端·架构·uni-app·php
篱笆院的狗14 小时前
Java 中的 DelayQueue 和 ScheduledThreadPool 有什么区别?
java·开发语言
2501_9418091414 小时前
面向多活架构与数据地域隔离的互联网系统设计思考与多语言工程实现实践分享记录
java·开发语言·python