zoukankan      html  css  js  c++  java
  • javaweb项目中程序执行到servlet时数据库连接失败但是测试程序却能连接成功的问题

      问题描述:今天在做一个javaweb项目,在登录系统时,一直登录失败,具体servlet代码如下:

      

       可以看到,代码是没有任何问题的。正常来说在接受到用户提交的表单信息"name"和"password"后,实体类对象user应该是可以获取到数据库中该用户的信息的,不应该为null,但是程序直接跳到了最后一行代码req.getRequestDispatcher("index.jsp").forward(req, resp)。

      为了弄清楚原因,刚开始用了一个比较笨的方法,就是把"name","password"和"user"的值全都打印出来,然后发现"user"的值是null,所以才导致这段代码直接执行最后一个else语句。

      这个时候,本应该往数据库连接问题这个方向上去想的,但是!!我们的测试程序是能够成功连接数据并且输出数据的,证据如下:

           

      测试程序中能获取到数据库信息,但servlet中使用同样的方法获取到的值却为null,令我们百思不得其解。。

      最后,我们使用Eclipse断点调试代码,发现name和password都能获取到前端输入的值,但是数据库没连接上!!

      然后,我们到数据库连接的代码部分,检查,也没发现错误,这就很令人费解了。

      上述这一整个过程,花了一下午的时间。。。

      好的,重点来了,如何解决的:

    原因是,那些连接数据库等等的jar包,我虽然导入到了我的项目里,但是该项目文件夹(WEB-INF/lib)下的jar包不全,有一些jar包为了省时间是从另一个项目的文件夹下导入的。。把完整的jar包放到该项目的WEB-INF/lib目录下后,问题解决了。

      总结:1、使用到的jar包要全部放到相应的目录下;

         2、不要因为怕麻烦,而花更多的时间去解决一些原本不会产生的问题!

    最后的最后,感谢帮我找bug的舍友,我向你敬礼,salute!

    2021-01-11 22:18:50

      

  • 相关阅读:
    hyper-v使用wifi链接网络
    windows下批量换程序——运维常用
    redis多端口,多实例。
    vs2017 本地IP地址调试 局域网调试
    自动备份
    ipv6无网络访问权限怎么办
    缓存
    学习php
    DateTimeOffset DateTime
    C# 集合
  • 原文地址:https://www.cnblogs.com/zrs123/p/14264728.html
Copyright © 2011-2022 走看看