在JavaEE开发中,我们经常使用SpringMVC或SpringBoot框架进行后端开发,在传统的J2EE项目中,我们经常采用MVC的设计模式完成项目框架的搭建,那我们从MVC模式进入今天的问题。
(资料图片)
MVC模式是如何的?
MVC设计模式是经典的程序项目设计模式,M代表的是业务模型,V代表的是用户视图,C代表的是控制器,其使用MVC的设计模式目的是为了分离项目中会耦合的代码部分,让我们的后端代码各司其职,程序员只需要了解模块间的协调关系,注重业务逻辑的代码实现就可以完成后端程序的开发了。MVC模式流程图如下:
那Session在项目中是干啥呢?
Session是服务端会话存储技术,我们在后端开发中我们会将登录用户的信息保存到session中,如果用户长时间或规定时间内没有操作,session就会过期从而让系统回到登录页面。
Session主要存储的内容:
登录用户的信息作用:主页展示登录人、CURD操作携带用户鉴权
系统相关信息:在多租户项目中,可能需要复杂的数据权限鉴权,也会在登录的时候携带
什么是跨域?这个原因来自于浏览器的同源策略安全限制, 同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。当我们使用ajax或者axios进行http访问时,非同源内容就会出现跨域请求问题。错误图如下:
04在开发中为何会跨域?
在传统的开发中,在MVC框架中,View层技术一般会使用jsp、html、freemarker、thymeleaf技术完成,但是他们的源码文件必须和项目框架文件在同一个目录下才能实现视图的解析,从而会出现耦合的效果。
从而MVVM框架出现,实现了前后端的完全分离,以为例的技术,实现前端是一个服务通过axios访问服务端,从而达到前后端物理层面的分离,但是在这种情况下就会出现不同源的情况。
vue与服务端交互:
当前端服务与后端服务不同源,但是在axios请求中会出现脚本的代理请求,就会出现非同源跨域问题。
跨域的简单判断
一个域名的组成由:协议、子域名、主域名、端口和资源地址组成;当协议、子域名、主域名、端口号中任意一个不相同,都算作不同域,当他们相互出现请求就会“跨域”。
跨域的解决
这样我们前端的请求就再也不会跨域了,因为我们通过代理完成。
跨域解决了,那Session怎么办?
session是保存在服务器端,理论上是没有是没有限制,只要内存够大。浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值,创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器,浏览器第二次访问服务器时携带Cookie信息JSESSIONID=ID的值,如果该JSESSIONID的session已经销毁,那么会重新创建一个新的session再返回一个新的JSESSIONID通过Cookie返回到浏览器针对一个web项目,一个浏览器是共享一个session,就算有两个web项目部署在同一个服务器上,针对两个项目的session是不同的。
但是在跨域的请求中,Session无法判别来自客户端的cookie和SessionID,他们每次个不相同,所服务端数据存储就得换一个思路实现,使用Redis缓存实现。
那我们就开始吧!
安装Redis后,在服务中配置Redis相关内容,此处以Springboot为例,集成Redis缓存。
ok,完成之后我们设计一下资源验证问题:
每个客户端都有一个唯一的id描述我是一个独立的客户端;
客户端id可以作为存储Redis的key,value存储客户端的用户数据;
需要取出验证必须要客户端提供唯一id;
总结流程
首先获取验证码发起的请求中要携带客户端唯一id;
通过客户端唯一id为存储Redis的key值,value为客户端对应的验证码;
在登录接口中获取客户端的唯一id,获取对应的验证码进行比较;
这样,我们就用Redis模拟了会话的方式保存验证码了。
欢迎关注“泰克教育” 公众号,查看更多信息
上一篇:这套题,关键时刻能救命!
下一篇:最后一页
-
泰涨知识 | 请求跨域 Session不共享?你遇到过这种情形吗?在JavaEE开发中,我们经常使用SpringMVC或SpringBoot框架进行后端开发
-
这套题,关键时刻能救命!近日,我国多地出现短时强降水、雷暴大风等强对流天气甚至引发洪水、泥
-
2023国寿如意福终身寿险保的什么?收益如何?2023国寿如意福终身寿险是一款由中国人寿推出的终身寿险,这款产品支持
-
10分钟吃掉62个!美国热狗大赛冠军成功卫冕|天天观点【环球时报综合报道】在美国纽约康尼岛7月4日独立日举办的内森吃热狗大
-
最新征地,川沙城东地铁商品房地块来了!川沙征地,近日,上海市规划和自然资源局发布三则征收土地预公告(沪浦
X 关闭
X 关闭
- 1今日要闻!“水原冰箱案”在韩引发震动,揭开“幽灵儿童”事件冰山一角
- 2世界简讯:埃科光电(688610.SH):IPO发行价73.33元/股 7月6日申购
- 3当前热点-杭州亚残运会代表团团长大会今天开幕
- 4为两地青年架起沟通桥梁 深港青年排球交流活动在龙岗区举办|环球热闻
- 5世界头条:*ST爱迪(002740)每日收评(07-03)
- 6一周热评:祝你平安~~喔喔克伦克~祝你平安!-每日速讯
- 7每日快看:加拿大华人数量排名_加拿大华人数量
- 8第十五届海峡论坛· 第三十二届海峡两岸关帝文化旅游节暨东山关帝文化纪录片发布仪式|重点聚焦
- 9黑龙江穆棱:家畜接连丢失 疑似东北虎“作案”
- 107月3日 13:05分 豪能股份(603809)股价快速拉升