Session和ModelAndView的区别

195 阅读3分钟

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

1 问题描述

在写后台的过程中,往往会遇到单点登录等问题,单点登录就意味着前端的一次请求参数我们会重复使用。这里我们就可以用到Session这个方法。然而ModelAndView方法是将数据处在一个model中,让前端直接获取,然而我刚开始是将这两种方法用混淆了的。下面来谈谈我的理解。 

2 问题分析

在后台的接口中,单点登录指的就是前端只传入一次参数,但是我们需要在多个接口中使用这个参数,比如说用户登录一次之后,那么用户的信息就在整个系统中存在,界面交换之后,用户不需要再次传入用户信息,我们要重复利用登录时的用户信息。而后台给前端的数据的时候,也需要将数据存起来,让用户直接使用。

3 解决方案

面对这样的问题,我们就会想到,能否使用一个空间来存放这些信息呢?我们把需要使用的数据存入一个空间中,需要的时候就直接在这个空间中找我们需要的信息就可以了。这里就有了Session和ModelAndView两种方法。首先Session是将我们需要的信息用setAttribute方法存入Session空间中,使用方法是存入信息以及这个信息的名字。使用的时候就直接用getAttribute方法,给一个信息名字的参数就可以使用我们存好的信息了。这是在后台重复使用前端传入的请求参数的时候。

当我们要给前端数据时也可以用同样的方式,就是将数据存入一个空间中,然后前端直接获取这个空间的信息就可以了。但是用到的空间不同,这里我们用的就是ModelAndView,这是两个空间,使用的时候也很容易弄混淆。他们有相似之处就是都是利用一个空间来存放数据,需要时直接在这个空间中查找便可。不同之处在于Session是将信息分类存放,每条信息有他的名字,我们可以获取我们需要的数据,便于后台使用相同参数的时候,而ModelAndView则是将前端Get请求到的数据放入一个model空间中,我的理解就是这个model空间中的数据是没有Session空间的数据那么容易分类,我们只有将全部信息存入model中,也就是说,这两个空间的用途是不一样的。下面来看一些例子:

Session的用法:

640?wx_fmt=png

640?wx_fmt=png

ModelAndView的用法:

640?wx_fmt=png

4 总结

Session中的信息不仅可以在后台各个接口中重复使用,也可以在前端传参的时候重复使用Session中的信息来传递参数,ModelAndView中的信息就是为前端需要的数据提供一个存放空间,不同的时候我们需要用到这两个不同的空间,但是也要把他们区分开来。这样更有利于我们的开发。总结的不是很到位,但是也希望可以对你有一点小小的帮助。

更多精彩文章:


640?wx_fmt=png

温馨提示: 点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发