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

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

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

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

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

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

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

教训:

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

2.没有不可能,只有想不到和不知道,思维方式和设计模式很重要

在用jfinal上传图片,结果拦截器拦截的时候想要获取参数token来验证登陆。但是上传图片的参数要先getfile才能获取。而如果getFile后,拦截完毕后后面controller操作file文件变复杂。我尝试了拷贝一份过去,也就是说这样会使图片在拦截器就被拦截了。不好。后来,去掉了拦截,在上传图片的方法中自己做验证,验证通过的再上传图片。

3.没有缜密的思维,做人是不是很失败,明知道的错误,可以一次又一次

在开始新建jfinal项目的时候我就明确的知道,jetty和tomcat不能共存。而我今天发布项目到tomcat的时候,总是失败。一直在纠结service配置文件问题,好久,终于想起看看错误日志,想起jetty。删除jett不管用。然后日志发现数据库没连接上,想起数据库还没搭建到服务器上,还在本地。可以哭晕在厕所了。这让我觉得,东西真多,思维不缜密,在代码上面,你将走的很艰难。我决定走下去。

4.Exception in thread "JFinal-Scanner" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFact

问题记录不全,大概就是日志记录问题。在jetty热部署的时候出错。这个问题上次刚遇到过。这次想不起来了,百度没找到也。突然想起老问题,tomca和jetty,移除tomcat,重启,ok。我想复现,重新加入tomcat环境,还是正常。不管怎么样先这样吧,我需要时间去研究内部问题。

5.能用Integer 就不用int,否则做好空指针处理

同样的代码,Integer id = user.getInt("id");而int id = user.getInt("id");出问题。原因是id为null。关于基础知识,现在今天没时间研究,改天记录下。

6.读写文档bug,居然说string formatnumber异常,而且我是没有空格的

源文档是jsoup趴下来的地区记录,然后,插入数据库的时候转int失败。n遍后,复制文本,新建文本,粘贴,测试,通过。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android群英传

Android NDK层发起HTTP请求的问题及解决

972
来自专栏進无尽的文章

多线程-概述及底层实现机制浅析

在打算写这篇多线层底层实现机制的时候,突然发现自己对于计算机竟然懂得这么表面,对于CPU的工作原理都不完全清楚,于是又转头查看了一些CPU相关的资料。也不敢钻的...

1151
来自专栏流柯技术学院

接口测试之webservice

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发...

1593
来自专栏FreeBuf

对自助提卡系统的一次代码审计

并非有意愿要审计该站,前面的走的黑盒没有过于精彩部分就不在贴上了,对于此系统站你们懂的,多说无益,这套程序是开源的,像这种自助提卡系统相信大家已经不在陌生了,很...

1513
来自专栏沈唁志

PHP新手必须认识的一些建议

1372
来自专栏为数不多的Android技巧

Android性能优化之虚拟机调优

介绍完 深入学习Android:虚拟机&运行时 之后,很多小伙伴问我,你描述的这些知识结构看起来艰深晦涩高大上,实际工作中能有多大用途呢?今天我就简单举个例子。

1181
来自专栏linux、Python学习

Linux吃掉了我的内存

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1345
来自专栏北京马哥教育

Linux内存被吃掉了,它去哪里了?

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1072
来自专栏木东居士的专栏

从0写一个爬虫,爬取500w好友关系数据

5576
来自专栏Google Dart

AngularDart4.0 英雄之旅-教程-06服务 顶

不是一遍又一遍复制和粘贴相同的代码,而是创建一个可重用的数据服务,并将其注入到需要它的组件中。 使用单独的服务可使组件保持精简并专注于支持视图,并使用模拟服务对...

591

扫码关注云+社区