首页 新闻 搜索 专区 学院

在session存入的是对象,为什么取出来变成了字符串?

0
悬赏园豆:5 [待解决问题]

在setUser方法中把User对象存入session,在同一个方法中获取user没问题,但是在getUser方法中拿到user,强转就会报错,整了半天没找到原因,哪位大神可以解惑?
项目是前后端分离的,用nginx做代理进行请求跳转,难道有代理的时候session中的值就转成了字符串吗???
我没有在前端操作session,只是在后端存了user,再取出user

App1eOrange的主页 App1eOrange | 初学一级 | 园豆:121
提问于:2021-03-12 09:50
< >
分享
所有回答(6)
1

你先别强转,debug看一下这个user是啥不行吗,你这个代码没问题,可能是你其他的代码造成了影响

yytxdy | 园豆:1680 (小虾三级) | 2021-03-12 09:58

项目是前后端分离的,用nginx做代理,是不是代理跳转会把session的值变成字符串?
但是我前端没有操作session,只是在后端一个方法存进去,另一个方法再取出来

支持(0) 反对(0) App1eOrange | 园豆:121 (初学一级) | 2021-03-12 10:38
0

先log一下,看看获取到的user是什么样子。然后做针对性处理就好啦

龙葛格 | 园豆:778 (小虾三级) | 2021-03-12 11:23

User(name=xxx,age=12),打印出来是这个样子的,session中还会存别的对象,如果每个都针对性处理太费事了,不知道是哪一步改变了类型

支持(0) 反对(0) App1eOrange | 园豆:121 (初学一级) | 2021-03-12 11:33

@App1eOrange: 我也不清楚是哪一步改变了类型。或许处理方式可以变通一下?针对非基本类型,是否可以在存入session前先手动序列化为字符串,取出后执行反序列化。

支持(0) 反对(0) 龙葛格 | 园豆:778 (小虾三级) | 2021-03-12 11:36
0

感觉你第一个的方法里面的session和第二个方法里面的session不在同一个域,你需要排查下header区域的session_Id信息。

Shapley | 园豆:57 (初学一级) | 2021-03-17 15:26
0

两个session不是同一个。 试着输出两个sessionid就知道了。

a走路带风 | 园豆:206 (菜鸟二级) | 2021-05-12 16:58
0

别墙砖,使用fastjson,啥的转换工具赚

三号小玩家 | 园豆:202 (菜鸟二级) | 2021-05-28 17:56
0

域里面存对象阿,一般很少这么存
1.存id
2.对象转json存,取出来json转对象,完成序列化

绝不是木头 | 园豆:506 (小虾三级) | 2021-11-09 14:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册