2016-08-18 16 views
-1

私は(D1、D2、D3とコメントし、D4)は、次のJSPコード内のコードの一部を取得することができません:は私に次のJSPコードのいくつかの作品を説明:

<%@page import="java.sql.*" errorPage="/MyError.jsp"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>LoginProcess</title> 
</head> 
<body> 
    <% 
     Connection conn = null; 
     String uname = request.getParameter("uname"); 
     String pass = request.getParameter("pass"); 
     try 
     { 
     Class.forName("com.mysql.jdbc.Driver"); 
     } 
     catch(ClassNotFoundException e) 
     { 
     out.println("Error(class):"+e); 
     } 
     try 
     { 
     conn = DriverManager.getConnection("jdbc:mysql://localhost/studentdb","root","mysql"); 
     PreparedStatement stmt = conn.prepareStatement("select * from studentdb.userdetails where uname=? and pass=?"); 
     stmt.setString(1, uname); 
     stmt.setString(2, pass); 
     ResultSet rs = stmt.executeQuery(); 
     if(!rs.next()) 
       { 
        out.println("username or password is incorrect"); 
    %>  <%--d1--%> 
     Try Again:<%@include file="Login.html" %> <%--d2--%> 
     </body> <%--d3--%> 
     </html> <%--d4--%> 
    <%   
     return; 
     } //if 
     } //try-sql 
     catch(SQLException e) 
     { 
     out.println("Error(SQL):" + e); 
     } 
     finally 
     { 
     conn.close(); 
     } 

    %> 
    This is Home Page<br> 
    Welcome,<b> <%= uname%></b> 
</body> 

なぜ私はなぜ、どのように動作するのか分からないifブロックに次のようなものが現れています。<%includeファイル= "Login.jsp">と選択タグの意味はわかりますが、ここではどうやって作業していますか? 。

%>  <%--d1--%>               
    Try Again:<%@include file="Login.html" %> <%--d2--%>      
    </body> <%--d3--%>              
    </html> <%--d4--%>            
<% 

(bodyタグとhtmlタグは上記のコードには表示されません)。

+0

あなたは 'return'を見逃しました。クエリが何も返さない場合、 "try again"フォームが表示されてから "return"、それ以外の場合は通常のページフッターが表示されます。 –

答えて

0

if(!rs.next())の代わりにif(rs.isBeforeFirst())を試してみてください。 rs.isBeforeFirst()falseの場合、レコードはありません。

関連する問題