-3
我試圖在MySQL數據庫中使用userID=JJ
和Password=password
來驗證此JSP頁面中的用戶。我不知道我在哪裏弄錯了,因爲它一直說沒有用戶或密碼匹配,即使我把正確的用戶名和密碼。JSP和MySQL中的用戶身份驗證失敗
<%@ page language="java" import="java.sql.*" errorPage="" %><% Connection conn = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ebookshop","root", "password");
ResultSet rsdoLogin = null;
PreparedStatement psdoLogin=null;
String sUserID=request.getParameter("sUserID");
String sPassword=request.getParameter("sPwd");
String message="User login successfully ";
try{
String sqlOption="SELECT * FROM usermaster where"
+" sUserID=? and sPassword=password(?)"; //and sStatus='A'
psdoLogin=conn.prepareStatement(sqlOption);
psdoLogin.setString(1,sUserID);
psdoLogin.setString(2,sPassword);
rsdoLogin=psdoLogin.executeQuery();
if(rsdoLogin.next())
{
//String sUserName=rsdoLogin.getString("sFirstName")+" "+rsdoLogin.getString("sLastName");
String sUserName=rsdoLogin.getString("sUserID")+" "+rsdoLogin.getString("sPwd");
session.setAttribute("sUserID",rsdoLogin.getString("sUserID"));
/* session.setAttribute("iUserType",rsdoLogin.getString("iUserType"));
session.setAttribute("iUserLevel",rsdoLogin.getString("iUserLevel")); */
session.setAttribute("sPassword",sPassword);
response.sendRedirect("success.jsp?error="+message);
}
else
{
message="No user or password matched" ;
response.sendRedirect("login.jsp?error="+message);
}
}
catch(Exception e)
{
e.printStackTrace();
}
/// close object and connection
try{
if(psdoLogin!=null){
psdoLogin.close();
}
if(rsdoLogin!=null){
rsdoLogin.close();
}
if(conn!=null){
conn.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
順便說一下,因爲我也有一個register.jsp因此我想驗證用戶的用戶ID和密碼對數據庫,而不是隻有一個固定的用戶名和密碼。很多謝謝! – Kimberly 2013-03-06 17:36:41
你可以從你的JSP中刪除所有的Java代碼,並把它放在一個Servlet中嗎?我知道JSP支持嵌入式Java代碼,但他們確實不應該,IMO – NickJ 2013-03-11 13:37:29