0

ユーザー情報の読み取り/表示で別の問題が発生しました。INSERT が完了すると、ユーザーに自分の情報 (登録) を表示する別の送信ボタンがあります。これで正しい方向に向かっていますか?

<%@page import="java.sql.*, java.util.*, javax.servlet.*, java.io.*, javax.servlet.http.*,     business.*"%>

<% 
Connection conn = null; 

try { 
    String email=request.getParameter("emailAddress");
    String dbURL = "jdbc:mysql://localhost:3306/Users"; 
    String user = "root"; 
    String pwd = "password"; 
    String driver = "com.mysql.jdbc.Driver"; 

    String query = ("SELECT * FROM User WHERE EmailAddress = '" +email+ "'");
    Class.forName(driver); 
    conn = DriverManager.getConnection(dbURL, user, pwd); 
    Statement statement = conn.createStatement(); 
    ResultSet rs = statement.executeQuery(query);
    User userObj;
    ArrayList<User> users = new ArrayList<User>();
    statement.close();

    while(rs.next())
                   {
    userObj = new User(rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5),     rs.getString(6));
    users.add(userObj);
           }
    Iterator it = users.iterator();
    User tempUser;

    while(it.hasNext())
                   {
        tempUser = (User) it.next();

        %>
        Username: <%= tempUser.getUserName() %><br>
        Password: <%= tempUser.getUserPass() %><br>
        First Name: <%= tempUser.getFirstName() %><br>
        Last Name: <%= tempUser.getLastName() %><br>
        Email: <%= tempUser.getEmailAddress() %><br>
        <%
    }

} catch( ClassNotFoundException e ){ 
    System.err.println( "Database Driver class not Found!" ); 
    e.printStackTrace(); 
} catch( SQLException e ){ 
    e.printStackTrace(); 
} finally { 
    try { 
        if ( conn != null ) { 
            conn.close(); 
        } 
    } catch ( SQLException e ) { 
        System.err.println( "Problems when closing connection" ); 
        e.printStackTrace(); 
    } 
} 
%>
4

2 に答える 2

0

jsp ページに Java コードを記述することはお勧めできません。JDBC コードを Java Bean に配置します。ここでは、oracle (旧 Sun)の jsp ページでの JavaBeans コンポーネントの説明を示します。

于 2012-08-17T10:11:29.333 に答える
0

ResultSet も閉じる必要があります。Statement の代わりに PreparedStatement を使用して、SQL インジェクションを回避できます。

于 2012-08-17T05:30:11.120 に答える