package com.sl.user;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.util.concurrent.RunnableScheduledFuture;
/**
* Servlet implementation class loginserver
*/
@WebServlet("/loginserver")
public class loginserver extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public loginserver() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset utf-8");
response.setCharacterEncoding("utf-8");
// TODO Auto-generated method stub
//doGet(request, response);
//獲取用戶名
String name=request.getParameter("username");
String password=request.getParameter("password");
boolean flag=false;
//鏈接資料庫
Connection connection=null;
PreparedStatement pStatement=null;
ResultSet rSet=null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/textdb";
connection=DriverManager.getConnection(url,"root","123456");
//執行sql命令
String sql="select username,password from tb_user where username=? and password=?";
pStatement=connection.prepareStatement(sql);
pStatement.setString(1, name);
pStatement.setString(2, password);
rSet = pStatement.executeQuery();
if(rSet.next()) {
flag=true;
}
rSet.close();
pStatement.close();
connection.close();
} catch (Exception e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
//執行運行結果
if(!flag) {
response.getWriter().println("用戶名或者密碼錯誤");
}
else {
response.sendRedirect("https://www.baidu.com/");
}
}
}

代碼如圖實在是弄不明白了
uj5u.com熱心網友回復:
這個斷點一看就知道了,問題無非就在獲取資料結果那里出了問題導致flag變數一直是false所以,下面false取反為true輸出密碼錯誤uj5u.com熱心網友回復:
password你用的request接收過來的是String型別的,你資料庫里面的password存的是不是int型別的,資料型別不匹配當然會報錯,你把你的用戶和密碼資料型別先轉換正確了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107327.html
標籤:Web 開發
