当前位置:首页 > 网站运营杂谈 > 正文

搞不懂 session.setattribute 有什么作用?看完这篇立马学会数据存储!

搞不懂 session.setattribute 有什么作用?看完这篇立马学会数据存储!

我跟你说,刚开始做那个烂七八糟的商城项目,我简直要抓狂了。为因为数据老是丢! 你费劲巴拉地登录进去了,好不容易在A页面存了个用户名,结果一跳转到B页面,卧槽,用户名没了...

我跟你说,刚开始做那个烂七八糟的商城项目,我简直要抓狂了。为因为数据老是丢!

你费劲巴拉地登录进去了,好不容易在A页面存了个用户名,结果一跳转到B页面,卧槽,用户名没了!显示“游客”!我当时就想砸电脑。搞不懂,这用户的状态到底要怎么才能“黏住”?

我的血泪实践:从参数传递到数据黏贴

我瞎搞,想着把用户名使劲往URL后面,一长串乱码,那叫一个难看,而且只要一多点几个链接,立马就断了,数据直接丢。后来又试了隐藏域,行是行,但每跳转一次页面就得塞一次,太蠢了,代码写得一团麻。

后来我们组那个老手看不下去了,他拍了拍我的肩膀,扔过来一行代码,就让我的世界清净了。

那行代码里,就有个玩意儿叫

搞不懂 session.setattribute 有什么作用?看完这篇立马学会数据存储!

他没多解释,就让我去翻文档,我一看,原来这玩意儿就是个“数据中转站”,它不跟页面走,它跟这个用户整个访问过程绑在一起。我当时那感觉,跟发现了新大陆一样!那些丢的数据,终于有地方可以安家了。

实战过程,三步搞定用户数据

我赶紧动手改了我的登录逻辑。我把整个过程拆分成了三步,简单粗暴:

  • 第一步:登录成功后,立马“存”起来。
  • 不再用什么乱七八糟的传递,直接在登录处理的那个地方,把需要的用户名、用户ID,一股脑儿地塞进Session里。
    比如,*("userName", *())存好了,我就放心了。

    搞不懂 session.setattribute 有什么作用?看完这篇立马学会数据存储!
  • 第二步:页面跳转,Session自己“带着”。
  • 用户从登录页面一跳到首页,再从首页跳到商品列表,我根本不用管。数据就在服务器端那个Session里呆着,安安稳稳,跟着用户的每一次请求走。

  • 第三步:到了要用的页面,直接“拿”出来。
  • 到了商品列表页,我需要显示“XXX,欢迎你”,我不用去URL里找,也不用去隐藏域里抠,我直接用 *("userName") 一拿,数据就回来了
    简直太方便了!如果拿不到?那就说明他Session过期了,或者压根儿没登录,直接把他踢回去重新登录,简单明了。

就是这么简单粗暴的存和取,彻底解决了数据丢失的问题。这下我才搞懂了,`*` 压根儿就不是用来传递数据的,它是用来黏住用户状态的!它就是用来给你的项目“定魂”用的!如果你也老是数据丢失,赶紧用起来,立马见效!

最新文章