JAVA SpringMVC里的model和java里的session有什么区别?

两者作用域区别?生命周期区别? model.addAttribute和session.setAttribute有什么区别?在底层值栈有什么存储区别吗?网上没查到model的

其实model和session都是存放信息的地方,不同的地方就是他们的生命周期不同,model是request级别的。

ModelandView是将  视图信息和数据封装到一起的,spring来解析ModelandView中的信息,包括视图和数据 ,然后将数据set到request里面,并且根据model里面的视图信息以及spring mvc的配置让request进行跳转。

springMVC的工作原理如下:

    springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 

    DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。

    DispatcherServlet请请求提交到目标Controller 。

    Controller进行业务逻辑处理后,会返回一个ModelAndView 。

    Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 。

    视图对象负责渲染返回给客户端。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-04
其实model和session都是存放信息的地方,不同的地方就是他们的生命周期不同,model是request级别的 ,如果有什么不懂的可以看源码追问

我知道session是会话级,那model呢。 既然model是request级,直接用request域好了为什么还用model呢。。spring的源码太乱了 这个问题都纠结好久了。但是谢谢你了

追答

这样用肯定是有很多好处了,要不然傻呀,ModelandView是将 视图信息和数据封装到一起的,spring来解析ModelandView中的信息,包括视图和数据 ,然后将数据set到request里面,并且根据model里面的视图信息以及spring mvc的配置让request进行跳转,如果什么事情都用你自己操作request和response,那么要框架干什么

本回答被提问者采纳