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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM