springmvc session和model解析--Java学习网

时间:2016-12-12 12:14:45

  核心提示:关于springMVC中的session,有2种使用方法,第一种是直接传递httpsession,第二种是使用@SessionAttributes('userId') 注解这里附带一个帖子,别人写的特...

关于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的数据

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

Tags:解析 学习 
作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号