JSPでJava Beansを使うには
 先のデータベース・アクセスの例ではJSPからJavaクラスを使っていましたが、 このよりよい実装として、JavaクラスをJava Beans として定義することです。 JSPには、Java Beansを便利に使うための命令が用意されています。
 Java Beansが何かということについてはこのページでは省略します。 先のクラス「DbcmSimpleAdaptor」は曲がりなりにもJavaBeansになれるクラスなので、 これをJSPから「Beans化」してみます。 JSP文書の機能自体は先の例と同じです。
<%@ page language="java" contentType="text/html;charset=EUC_JP" %>
<%@ page import="java.sql.*, DbcmSimpleAdaptor" %>
<html>
<head><title>ログイン</title></head>
<body bgcolor="white">

<%!
/**
 * データベースに接続して、パスワード認証を行います。
 * ログインOKなら真、NGなら偽を返します。
 */
private boolean checkLogin(
DbcmSimpleAdaptor adaptor, String userID, String password)
throws SQLException, ClassNotFoundException {
    boolean result;

    Connection con = adaptor.connect();
    String sql = "SELECT PASSWORD FROM USERS WHERE USER_ID = ?";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setString(1, userID);

    ResultSet rset = ps.executeQuery();
    if(! rset.next()){
        result = false;
    }
    else{
        String dbpass = rset.getString(1).toLowerCase();
        result = password.toLowerCase().equals(dbpass);
    }
    rset.close();
    con.close();
    return result;
}
%>

<%
String userID = request.getParameter("user_id");
String password = request.getParameter("password");
if(userID == null){
%>
    <form action="dbbean.jsp" method="post">
    ユーザID:<input type="text" name="user_id"><br>
    パスワード:<input type="password" name="password"><br>
    <br>
    <input type="submit" value="ログイン">
    </form>
<%
}
else{
%>
    <jsp:useBean id="adaptor" class="DbcmSimpleAdaptor" scope="session" />
    <jsp:setProperty name="adaptor" property="driverSpec"
                     value="postgresql" />
    <jsp:setProperty name="adaptor" property="hostName"
                     value="localhost" />
    <jsp:setProperty name="adaptor" property="port"
                     value="5432" />
    <jsp:setProperty name="adaptor" property="database"
                     value="udb" />
    <jsp:setProperty name="adaptor" property="userName"
                     value="urano" />
    <jsp:setProperty name="adaptor" property="password"
                     value="" />
<%
    boolean result;
    try {
        if(checkLogin(adaptor, userID, password)){
%>
            <h1>ログインしました。</h1>
            ようこそ、<%= userID %>さん。
<%
        }
        else{
%>
            <h1>おおっと</h1>
            ログインできません。
            <a href="<%= response.encodeURL("dbbean.jsp") %>">
こちら</a>
            に戻って再度入力を試して下さい。
<%
        }
    } catch(SQLException ex){
%>
        <h1>おおっと</h1>
        データベース接続エラーが発生しました。<br>
        <%= ex.toString() %>
<%
    }
}
%>
</body></html>

Java Top
(first uploaded 2001/12/24, KQ Taura)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMIT1~] COiq COsI