在项目时候,经常使用到session和model,两者都是通过key-value的方式存储值。为了加深记忆以及学习理解,记录一下。
我觉得两者的区别大部分在于有效范围大小,session创建后,可以一直存在,只要不调用session.invalidate()方法清除session,它就会一直存储在服务器端的一段内存中,只有当会话结束之后才会消失,通常session用来判断用户登录的状态,在ssm中通过拦截器以及session来控制用户登录后的访问权限。
model的数据,只会在下一页面中使用,比如在开发ssm中,你在控制器中通过model存储了数据,控制器返回的视图就可以通过el表达式调用model中存储的数据。
还有重定向与转发,如果是重定向,由于是重新请求,model的数据会消失,转发则不会,而对于Session来说,无论是重定向与转发,session的值都不会发生改变。