2013-03-06 3 views
-3

Я пытаюсь выполнить аутентификацию пользователя на этой странице JSP с помощью userID=JJ и Password=password в базе данных MySQL. Я не знаю, где я ошибаюсь, поскольку он продолжает говорить, что ни один пользователь или пароль не совпадают, хотя я использую правильный идентификатор пользователя и пароль.Ошибка аутентификации пользователя в 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(); 
} 
%> 
+0

Кстати, поскольку у меня тоже есть register.jsp, поэтому я хочу проверить идентификатор пользователя и пароль для базы данных, а не только один фиксированный идентификатор пользователя и пароль. Большое спасибо! – Kimberly

+0

Можете ли вы удалить весь код java из своего JSP и поместить его в сервлет? Я знаю, что JSP поддерживают встроенный Java-код, но они действительно не должны, IMO – NickJ

ответ

1

Ваш код правильный я suppose..U первый чек на отдельно вызов я имею в виду DonT вызова в JSP сервлетов использования и классе в architecture.As MVC это не очень хорошая вещь practice.I это будет работать, если вам следуйте за аркой MVC. поскольку JSP предотвращает так много логики.