美文网首页程序员
SpringMVC使用session保存数据以及applicat

SpringMVC使用session保存数据以及applicat

作者: 凡哥爱丽姐 | 来源:发表于2020-11-27 13:13 被阅读0次

    使用session保存数据(session是一次会话,里面可以有多次请求)

    1、HttpSession session

    1.1、index.jsp

    <%@ page contentType="text/html;charset=UTF-8"  language="java" %>
    <html>
    <body>
    <h2>Hello World!</h2>
    <form action="/test" method="post" >
        <input type="text" name="username"><br/>
        <input type="text" name="password"><br/>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    

    1.2、success.jsp

    <%--
      Created by IntelliJ IDEA.
      User: Mr Wei
      Date: 2020/10/27
      Time: 9:18
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
    <html>
    <head>
        <title>成功页面</title>
    </head>
    <body>
    <h1>测试成功!</h1>
    <h2>model</h2>
    username:${uname}
    
    <h2>session</h2>
    sessionname:${sessionname}<br/>
    <a href="/logout">out</a>
    </body>
    </html>
    

    1.3、测试类

    @Controller
    public class TestModelController {
        @RequestMapping("/test")
        public String test(String username, String password, ModelMap modelMap, HttpSession session,HttpServletRequest request){
            System.out.println(username+" "+password);
            modelMap.addAttribute("uname",username);
            session.setAttribute("sessionname",username);
            return "success";
        }
    
        @RequestMapping("/logout")
        public String logout(HttpSession session){
            session.invalidate();//让session失效
            return "index";
        }
    }
    

    测试结果

    图片.png
    图片.png
    注:只有点out,session才会在这次会话中失效

    2、使用@sessionAttributes("key值") //写的是ModelMap中定义的key值

    注:该注解和ModelMap结合使用,当使用ModelMap存值时,会在session中同时存储一份数据

    @SessionAttributes()的小括号中如果是一个值,不要加{}

    示例:

           @SessionAttributes("key")
           @SessionAttributes({"key1","key2"})
    

    清除注解SessionStatus status类

           status.setComplete();
    

    2.1、index.jsp

    <%@ page contentType="text/html;charset=UTF-8"  language="java" %>
    <html>
    <body>
    <h2>Hello World!</h2>
    <form action="/test" method="post" >
        <input type="text" name="username"><br/>
        <input type="text" name="password"><br/>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    

    2.2、success.jsp

    <%--
      Created by IntelliJ IDEA.
      User: Mr Wei
      Date: 2020/10/27
      Time: 9:18
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
    <html>
    <head>
        <title>成功页面</title>
    </head>
    <body>
    <h1>测试成功!</h1>
    <h2>model</h2>
    username:${uname}
    
    <h2>SessionAttributes</h2>
    SessionAttributesName:${uname}<br/>
    <a href="/logout">out</a>
    </body>
    </html>
    

    3.2、测试类

    @Controller
    @SessionAttributes("uname")
    public class TestModelController {
    
      @RequestMapping("/test")
      public String test(String username, String password, ModelMap modelmap){
          System.out.println(username+" "+password);
          modelmap.addAttribute("uname",username);
          return "success";
      }
    
      @RequestMapping("/logout")
      public String logout(SessionStatus status){
          status.setComplete();//清除session
          return "index";
      }
    }
    

    测试结果

    图片.png

    3、applicationContext作用域

    图片.png
    图片.png

    相关文章

      网友评论

        本文标题:SpringMVC使用session保存数据以及applicat

        本文链接:https://www.haomeiwen.com/subject/qsjxvktx.html