SpringMVC HttpSession 与 Model 区别

本文深入解析了Session与Model的概念及作用,对比了sessionAttribute与modelAttribute的区别,详细阐述了Session在HTTP无状态协议下的重要性及其创建流程,同时介绍了Model在Spring框架中的使用方式。

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

一、 model与session区别
1.session的概念

        session即 会话,是客户为实现特定应用目的与系统的多次请求交互。它具体是指一个终端用户与交互系统进行通信的时间间隔,通常指从 注册进入系统到注销退出系统 之间所经过的时间。

2.为什么需要session?

       Http协议是一种 无状态 的协议,客户端每打开一个web页面,它就会与服务器建立一个新连接,发送新请求到服务器,服务器处理请求并将该请求返回到客户端。服务器不记录任何客户端信息,每次客户端发送的请求都是独立的,这种方式不可用。

3.session的作用

    (1)session可以是一种能将信息保存于服务器端的技术,能记录特定的客户端到服务器的一系列请求。
    (2) session 里放的数据保存在服务器,可以供其他页面使用只要用户不退出或者SESSION过期,这个值就一直可以保留。在当前的 request周期之内,调用getAttribute方法同样也可以得到。

4.创建session的流程

     在网站使用中,为了保存用户信息,服务器会给每一个用户(浏览器)创建一个Session。
流程:
    1、客户端请求服务器
    2、服务器创建Session,在服务器端保存用户数据
    3、服务器返回给客户端一个SessionId(JSESESSION)是一个Cookie
    4、用户在Session作用时间内再次访问服务器就会根据SessionId取出用户的Session

1.model的概念

       Model是一个接口,是request级别的,作用域与request相似。ModelMap是接口的实现。是将model中的数据填充到request域中,返回给客户端。

2.为什么需要model?

       model可以将数据放入视图中

3.model的作用

     (1)model的数据,只能在Controller返回的页面使用,其他页面不能使用
     (2)spring中model缓存的值是保存在request的getAttribute里面。当调用controller里面某个@requestmapping注解的方法,都能取到这个model里面的值。

二、modelAttribute与sessionAttribute区别

    1.modelAttribute:常量定义,比如key,value的映射。像下拉框,多选框等等
    2.sessionAttribute:跟用户会话相关的常量,如用户基本信息等

三、示例

SpringBoot

显示当前登录用户的状态信息(二者效果一样)
controller
  session.setAttribute("admin",admin);
  session.setAttribute("loginUser",username);
页面
  <a href="#">[[${session.admin.account}]]</a>
  <a href="#">[[${session.loginUser}]]</a>
  (session需要加上)
controller
  model.addAttribute("msg", "账号或密码错误");
页面
  <a href="javascript:;">[[${msg}]]</a>
  (直接用)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值