zoukankan      html  css  js  c++  java
  • 做项目中没经验遇到的各种问题

    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遍后,复制文本,新建文本,粘贴,测试,通过。

  • 相关阅读:
    Parameter Binding in ASP.NET Web API
    Which HTTP methods match up to which CRUD methods?
    ErrorHandling in asp.net web api
    HttpStatusCode
    Autofac Getting Started(默认的构造函数注入)
    Autofac Controlling Scope and Lifetime
    luvit 被忽视的lua 高性能框架(仿nodejs)
    undefined与null的区别
    VsCode中使用Emmet神器快速编写HTML代码
    字符串匹配---KMP算法
  • 原文地址:https://www.cnblogs.com/woshimrf/p/4896181.html
Copyright © 2011-2022 走看看