在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模拟了会话的方式保存验证码了。
欢迎关注“泰克教育” 公众号,查看更多信息
在JavaEE开发中,我们经常使用SpringMVC或SpringBoot框架进行后端开发
赤纱之蝎:百机操演大蛇丸:八岐之术万蛇罗之阵飞段:角都:复合忍...
基金返投是什么意思?基金返投,是指将购买该基金所获得的收益再次投...
湖南地区1 锑锭报价区间在78500-79500元 吨,均价79000元 吨,较前一交
价格动态:7月6日,中石化集团华北地区:齐鲁石化报价6200元 吨,石家
7月6日,开封市九泓化工有限公司DBP、DIBP总产能24万吨 年设备开工正常
产品价格区间(元 吨)均价(元 吨)涨跌(元 吨)氧化镧4000-46004300
7月6日,顺泽丁腈3355 3365出厂报13800元 吨;3380出厂报14300元 吨。
基金长期不赎回能赚钱吗?基金长期不赎回能不能赚钱要看投资者买的是...
近日,高澜股份顺利完成±400千伏拉萨换流站调相机外水冷风机功能技术
7月5日,海亮股份(002203)通过官方微信号对外表示,其全资子公司浙江
为进一步规范企业依法统计,提升统计数据质量,夯实基层统计基础,提高
20世纪以石油为中心,而21世纪是否占据主导地位是由技术优势决定的。
中国粮食安全,谁来守护?
中国西电(601179)07月06日在投资者关系平台上答复了投资者关心的问题。
据泰禾集团官微消息,7月1日,泰禾集团半年工作会,黄其森表示,最近看
近年来,我国新能源汽车产销两旺,充电需求逐年增长。国家电网作为新能
在上半年出台的调控政策中,公积金支持政策仍是重要举措之一,购房补贴
7月5日醋酸与醋酐商品比价指数为126 49,较昨日上升了1 25点,较周期内
山东成泰化工MTBE报价下调100元 吨至7300元 吨。石大胜华MTBE报价下调5
7月5日,中国羽毛球协会在其官网公示了杭州亚运会中国羽毛球队参赛运动
中信证券07月06日发布研报标题为《投资价值分析报告:内资封装基板扩产
7月3日,中国新能源汽车第2000万辆下线仪式在广州举行,亿纬锂能联合创
栏目名称:《廊坊新闻》首播频道:新闻综合频道首播时间:19:40重播时
淘宝88会员计划是淘宝平台推出的一项会员服务,为消费者提供更多的优
新华社深圳7月6日电(记者毛思倩)深圳市交通运输局近日发布公告,首次
*ST交昂保壳面临生死时速公司仍未聘请2022年年报审计机构2023年07月06
据生意社监测:7月6日,连豆油y2309合约,开盘价8102元 吨,最新报价80
华东地区聚合MDI市场窄幅整理,价格方面,万华货报价16300-16500元 吨
国内现货锡市场1 锡锭主流报价区间233000-236000元 吨,均价234500元
X 关闭
X 关闭