做项目中没经验遇到的各种问题

1.java基础不牢,关于对象和类的声明周期等不明白

在做app登陆token验证的时候。我设计一个tokenutil中添加一个成员变量map,每次登陆成功,将token放进去。以后取出来验证。做了一个测试,登陆,再访问,没问题,显示登陆成功。

然后就以为ok了,然后突然想换一个用户登陆看看,于是就魔怔了。因为我发现,我换一个用户登陆的时候,原来的用户登陆就失效了。这怎么可以。

于是,我尝试了n种做法,均失败。想着感觉不对,原来我根据就是一个用户在登陆,只是toke换了而已,我记录token是以用户id为key的。

这样,我刷新登陆页面,发现token变换(token用时间戳加密),以为就是新用户登陆了。而实际上,我发现map中始终只有一组token,我怀疑这个类没次都会初始化,我不清楚生命周期到底怎么算的。当然我现在也没去搞清楚它的声明周期到底是什么情况。尝试别的方法也不管用。在调试n次后突然发现,我的key一直是一样的,想起map当key相同的时候回覆盖原来的。于是,兴奋。重来,果然是可以的。

这样,说明类始终加载着,没有销毁。而我一个粗心大意的问题是,我把刷新登陆也当做新用户登陆,而标记用户登陆的key是用户的id,同一个用户当然只会标记一组。

教训:

  我应该慢下来,仔细思考问题。从头开始,一点点思考,我首先应该想:模拟登陆第一点输入用户名和密码。而这一点如果看清楚了就会发现问题解决了,我根本一直就是用一个用户来测试多用户的结果,肯定不对。另外,也和我脑子太乱,没想清楚生命周期和多线程同步等问题有关。等下仔细研究下。

时间: 2024-12-28 00:24:04

做项目中没经验遇到的各种问题的相关文章

【工具与解决方案】从做项目中积累学习

[Java-Swing] 1.http://java-mans.iteye.com/blog/1650786     JAVA-SWT如何在Jtable单元格中加入复选框Jcheckbox,Jbutton,JcomboBox 2.环境搭建 http://blog.csdn.net/ghuil/article/details/40652645 http://www.cnblogs.com/yaowukonga/archive/2013/02/28/2937169.html http://www.t

做项目中遇到所有的常用知识点(javascript、php、mysql、apache、nginx)更新

1.Mysql随机取数据,性能最好的方法: 用join取出一条 SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id ASC LIMIT 5; 取出多条(最大值-最小值)* 随机数 +最小值 SELECT * FROM users WHERE userId >= ((SELECT

关于做项目

项目已经结束了,说实话,结束地有点仓促,实在不是我的风格.现在想来,此次做项目最大的不妥之处就是没有什么明确的规划,一切都是随性而为.最开始决定两人组队开发一个简单的手机APP是觉得第一次做项目,没有经验和常识,人数多了容易手忙脚乱,而且我们两人水平相当,对彼此也有了解,在进行任务的分配和查收上也可以简单一些.更重要的是,较少的人数也是对自身能力的一种提升.由于只有两个人,我们对于项目的规划便过于随意,这导致了接下来的一系列失控,对于我这样一个偏完美主义,这些失控明显使我觉得矛盾和对立,以致力不

循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天

<循序渐进做项目系列迷你QQ篇>将陆续介绍客户端聊天,文件传输,加好友,群聊,包括语音聊天,视频聊天,远程桌面等等需求如何实现,感兴趣的朋友可以持续关注.考虑到某些需求较为复杂,本系列采用成熟的通信框架ESFramework来做,而不是从socket做起,当然这与本人才疏学浅也有莫大的关系,如果大家不嫌弃小弟写得太“low”,还请捧个人场,顺便给予鼓励! 言归正传,今天就是要实现一个最简单的功能:客户端互相聊天. 一·部署通信设备 参见 循序渐进做项目系列(1):最简单的C/S程序——让服务器

android 项目中log信息的正确处理

我们在做项目中,调试程序的时候一般是debug或者打log,特别是看一些json数据之类的,都喜欢打log看看,但是在项目上线时log信息一定不能被打印出来,大家可以平时下载一些做的烂的app,连接eclipse有时候都可以看到一些请求的url或者返回的数据,这要是碰到一些技术好的人,是吧 干些啥事,你懂的,下面写一个log类,平时在项目中用到的,就是一个工具类, public class LogUitl { private static final boolean IS_OPEN = true

android 项目中使用到的网络请求框架以及如何配置好接口URL

我们在做项目中一定少不了网络请求,现在很多公司的网络请求这块好多都是使用一些比较好的开源框架,我项目中使用的是volley,现在讲讲一些volley基本的使用,如果想要详细的了解就要去看它的源码了,现在贴代码讲一些它的使用了, 首先用一个类去封装下它的基本配置信息,以后需要变动的话,就直接在这里做修改,android最好能把每个功能都独立出来,这样做修改的话 不会导致出现其他的bug,特别在有新员工进入到项目组中,分配任务沟通起来也省事, ProtocolManager.java  它是一个单例

第一次做项目

第一次做项目,没想到还做完了,我主要负责页面设计和手机端设计,模仿老师写一些其他的代码 只有自己做项目时才发现自己写的代码是有多烂,哈哈(O(∩_∩)O~~) 不过已经很开心了,通过自己努力去实现了一些东西,开心的原因应该是知道自己也是有一定的价值的! 项目今天上线,希望别处bug(虽然已经测试了4天了)

谈谈最近独立做项目的一些事情,一些小经验,分享之!

可以说我是一个码农,一个纯正的码农,一个脱离了低级趣味的码农,时刻准备着要做一个对社会有贡献的码农. 平常最喜欢的事情就是在群里问问题,总是有那么一群好哥们在一起,这样可以享受装逼的乐趣. 谈了这么多无厘头的话题,总归要切入正题,我大学的时候学的是JAVA,但是无奈大学时光都沉浸于美色和游戏当中,所以导致大学毕业的时候,只会写一点简单的东西,只知道JAVA中的swing(这个貌似是我懂的最深的知识了). 也就是在我找工作四处碰壁,走投无路的时候,我发现了一条阳关道:啃老.虽然这不怎么好,但是确实

公司做项目的几点经验总结(个人经验)

首先作为一个低级码农,写这篇文章是需要一点勇气的..哈哈哈...毕竟自己也才做了几个小项目而已,没有资格高谈阔论.反正就是希望给一些不知道的人一些思路,知道的活就不用看了.本文是从程序员视角进行分析. 1.项目的注释. 这是一个很大的而且很严重的问题,一般只要公司不做强制性要求的话,至少我们部门,我很少看到能有自觉写注释的人.这就导致了一个问题,如果那个人的方法写得很复杂,或者命名不规范的话,又没有注释,当然雪上加霜了,结果就是,其他人看那个人写的代码,不说看不懂,调不通,至少也会花费大量的时间