2016-08-18 2 views
-1

Ich bin nicht in der Lage, ein Stück Code in dem folgenden JSP-Code zu erhalten (kommentiert als d1, d2, d3, d4):Erklären Sie mir ein paar Stücke des folgenden JSP-Code:

<%@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> 

die folgenden erscheinen in einem if-Block, den ich nicht verstehe, warum und wie funktionieren sie, ich weiß die Bedeutung von <% @ include file = "Login.jsp"> und selektive Tags, aber nicht ich bekomme, wie funktionieren sie hier .

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

(die Körper- und HTML-Tags erscheinen nicht im oben genannten Code).

+0

Sie vermisste die Rückkehr. Wenn die Abfrage nichts zurückgibt, wird das Formular "erneut versuchen" angezeigt und dann "return", andernfalls wird der normale Seitenfuß angezeigt. –

Antwort

0

Verwenden Sie anstelle von if(!rs.next())if(rs.isBeforeFirst()). Wenn rs.isBeforeFirst()false ist, dann haben Sie keine Datensätze.

Verwandte Themen