質問: stmt.executequery(sql_str); if(rs!=null){ rs.close(); stmt.close(); connection.close(); return true; } else{ rs.close(); stmt.close(); connection.close(); return false;} }catch(sqlexception e) { return false; }catch(exception e){ e.printstacktrace(); return false;}}} このように、パラメータからきたアドレスパスワードを使い、sqlのselectで検索されたものをrsに返し、rsが空でなければ、trueを返します。(このメソッドはerromsg.jspから呼ばれます。)しかしデータに登録さてないものでもrsがnullでないと判断され、trueが帰ってきます。
回答: resultsetオブジェクトは、行が無くてもnullにはなりませぬ。つまり、「結果が1行も無いresultsetオブジェクト」になります。 java2 1.4.2 apiを参照しても、returnsに「never null」と名言されています。 なので行があるかないかは、resultset.next()やresultset.getrow()で判断します。または select count(email) from customer where email='"+email+"'and password='"+password+"'" というsql文で、最初の行の最初のフィールドが0であれば存在しないという判断になるかと思います。