关于springMVC中的session,有2种使用方法,第一种是直接传递httpsession,第二种是使用@SessionAttributes("userId") 注解

这里附带一个帖子,别人写的特别好,是我看过的觉得最好的:http://www.cnblogs.com/waytofall/p/3460533.html

他里面详细的解析了这个注解的作用,httpsession的就不多说了,这里主要解释这个注解的原理

按照原文的解释,也试了原文的例子,确实效果是那样

也就是说这个注解会在把model中对应的的属性名自动保存在session中

而且,下次的请求到别的业务类时,如果这个业务类也标记了这个session注解,他会自动去找session中这个属性名并且填充到model对象中去

可以在地址中的例子的基础上添加一个业务类,尝试着不标记这个注解能不能拿到,和标记了之后在model中就可以拿到了

关于清除的,就只能从httpsession对象的remove的方法去清除了

model以下时个人看法和理解

model的作用跟request的setAttribute(arg0, arg1) 是一样的,都是把值或是对象进行一个保存,然后可以在视图上进行取值,同样都可以使用ognl表达式取值

那问题来了,为什么springmvc框架要使用model这个对象呢?

我个人的理解就是

request他只是一个请求,他的作用就是从客户端发起一个请求,并且携带客户端发起的这个请求所带的参数,在业务层中进行参数的获取并且做出相对应的处理,到这里这个request请求对象的工作就应该结束了,剩下的就是客户端对这个请求和参数做出处理结果并且生成响应response返回客户端。

所以不应该用request进行存值,来达到模型层和视图层的一个连接,所以才使用model或是modelandview这个专门的对象来进行模型层的存在和视图层的取值

model会在模型层进行存值,在视图层中,他会去检查model对象中是否用这个属性,有他就会渲染出来,request请求结束后就会自动清除model的数据

以上是个人对model和request的理解,快1点了,收拾收拾睡觉了

springmvc session和model解析的更多相关文章

  1. [转载]SpringBoot系列: SpringMVC 参数绑定注解解析

    本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析   本文介绍了用于参数绑 ...

  2. SpringMVC 源码深度解析<context:component-scan>(扫描和注冊的注解Bean)

    我们在SpringMVC开发项目中,有的用注解和XML配置Bean,这两种都各有自己的优势,数据源配置比較经经常使用XML配置.控制层依赖的service比較经经常使用注解等(在部署时比較不会改变的) ...

  3. [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.

    前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...

  4. c# 轻量级 ORM 框架 之 Model解析 (四)

    关于orm框架设计,还有必要说的或许就是Model解析了,也是重要的一个环节,在实现上还是相对比较简单的. Model解析,主要用到的技术是反射了,即:把类的属性与表的字段做映射. 把自己的设计及实现 ...

  5. Thymeleaf模板如何获取springMVC返回的model值

    Thymeleaf模板如何获取springMVC返回的model值 后台的实现: @RequestMapping("/hello") public String hello(Mod ...

  6. SpringMVC——视图和视图解析器

    请求处理方法执行完成后,最终返回一个 ModelAndView对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个Mode ...

  7. SpringMVC 参数绑定注解解析

    本文介绍了用于参数绑定的相关注解. 绑定:将请求中的字段按照名字匹配的原则填入模型对象. SpringMVC就跟Struts2一样,通过拦截器进行参数匹配. 代码在 https://github.co ...

  8. SpringMVC 视图和视图解析器&表单标签

    视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它 ...

  9. springMVC工作原理趣味解析

    springMVC 涉及的人有: 1:浏览器                2:DispatherServlet  3:Handler             4:HandlerAdapter     ...

随机推荐

  1. 分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:

    1. foreach效率更高,尽量用foreach代替while和for循环. 2. 循环内部不要声明变量,尤其是对象这样的变量. 3. 在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环 ...

  2. bzoj1415[NOI2005]聪聪和可可

    之前做的一些图上的期望步数的题大多用到高斯消元来求解(HNOI游走,SDOI走迷宫,etc),因此我一开始做这道题的时候想偏了- 这道题的性质:聪聪和可可之间的最短路长度严格递减.因为聪聪总可以多走一 ...

  3. jsp上传图片实时显示

    jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...

  4. 故障review的一些总结

    故障review的一些总结 故障review的目的 归纳出现故障产生的原因 检查故障的产生是否具有普遍性,并尽可能的保证同类问题不在出现, 回顾故障的处理流程,并检查处理过程中所存在的问题.并确定此类 ...

  5. CTP程序化系统开发(C++ && PHP)

    2016-12-13 11:03:52 借助CTP的DEMO(上海期货交易公司提供的), 需要自己在 http://www.simnow.com.cn  上注册账号, 再者,需要下载[博易大师]软件, ...

  6. Python环境配置安装

    2016年12月20日14:15:23 -------------- 参考菜鸟教程: Python 环境搭建 | 菜鸟教程  http://www.runoob.com/python/python-i ...

  7. U盘存放大于4G数据文件且无须格式化U盘的解决方法

    现在优盘的容量越来越大了,价格越来越便宜,可是它也有个缺点,因为它默认的文件系统是"FAT32",这种文件系统最大只能保存4G的文件,超过4G的文件就不能保存在优盘上了,这样就不能 ...

  8. 基于Lease分布式系统重试服务选举

    /** * Copyright (c) 2015, www.cubbery.com. All rights reserved. */ package com.cubbery.event.retry; ...

  9. D3.js学习(五)

    上一节我们已经学习了如何设置填充区域,其实理解了他的实现原理还是非常简单了.这一节中, 我们主要学习多条曲线的绘制,以及给不同的曲线指定不同的纵坐标. 新的数据 由于我们要画两条曲线,所以我们要在原来 ...

  10. C#如何获取本机网络IP地址

    在开发过程中我们经常会碰到需要IP地址,用来记录用户上次登录的时间地址,或者sokect网络编程等等,下面介绍两种方式: 1. public static string GetIP() { retur ...