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