N-BOX
TOP
新着情報
フォトギャラリー
デジモノ
おべんきょう
はまりもの
ひとりごと
カメラ
パソコン
掲示板
プロフィール
リンク
メール
afer_88_31.gif
リンクシェア アフィリエイト紹介プログラム
PSX_120_60
デル5_120x60
富士通ショッピングサイト WEB MART

ログイン処理その1

 これから本格的に開発に入っていきたいと思います。最初にログイン処理を考えていきたいと思います。
 ログイン処理を行って、間違っていればエラーで返し、合っていればログインしてメニュー画面を表示します。

 まずは、HTMLでIDとパスワードの入力画面をつくります。IDとパスワードを入力する必要があるので、
IDとパスワード用のテキストボックスとボタンを作ります。
学校では、学生証番号が基本になっていて、Windowsのログインにも使っています。Windowsで使っているものと同じIDとパスワードを使ってログインの処理をさせます。
ログインのボタンを押すと、「login」サーブレットを呼び出すように設定しています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>ログイン</TITLE>
</HEAD>
<BODY>
<FORM action="login" method="POST">
<TABLE border="0">
<TBODY>
<TR>
<TD>学生証番号</TD>
<TD>
<INPUT size="10" type="text" maxlength="10" name="uid">
</TD>
</TR>
<TR>
<TD>パスワード</TD>
<TD>
<INPUT size="10" type="password" maxlength="10" name="pass">
</TD>
</TR>
<TR>
<TD colspan="2" align="right">
<INPUT type="submit" name="login" value="ログイン">
</TD>
</TR>
</TBODY>
</TABLE>
</FORM>
</BODY>
</HTML>
 次に、Loginの処理をするサーブレットを考えていきたいと思います。
ログインの処理ではユーザーIDとパスワードを受け取り、データベースと照会してあっていればログインOKとし、同一のIDとパスワードがない場合は、エラーとして処理を戻すようにします。
 まず、「LoginServ」というクラスを作成し、そこにログインの処理を記述して行きます。
 まず最初に行うことは、ログイン画面で入力したIDとパスワードを取得することです。
 フォームからの入力を取得するには「getParameter()」メソッドを使用します。
 ユーザーとパスワードを取得するための記述は次のとおりです。
String uid = req.getParameter("uid");
String pid = req.getParameter("pass");
 getParameterメソッドのでログイン画面で指定した名前を与えることでデータを取得することが出来ます。
 取得したデータを元にしてデータベースと照合していきます。 
 以前に登録した生徒テーブルの値と照合し、登録されているかどうかの判断を行います。
生徒テーブル student_table
id id int
ユーザーID user_id char(6)
パスワード pass char(8)
氏名 name varchar(20)
学科・学年 study_id int
在籍状況 enrollment smallint
登録日時 set_date datetime
 以前に登録した生徒テーブル内容です。
登録されたIDとパスワード以外に、在籍状況もチェックします。
在籍状況は(0:在籍、1:休学、2:卒業、3:退学)のいずれかの値がセットされているものとして考えて行きます。
 今回は在籍している生徒のみを対象として考えます。
String sql = "SELECT * FROM student_table where user_id = '" + uid + "' " + "and pass = '" + pid + "' and enrollment = 0" ;
 ユーザーIDとパスワードが合致し、在籍している生徒を検索しています。
 「executeQuery()」メソッドを使ってデータベースの検索を行い、結果を確認します。
ResultSet result
= statement.executeQuery(sql);
 検索結果は「ResultSet」オブジェクトにセットされているので、その内容を確認します。
「ResultSet」オブジェクトの「next()」メソッドでデータを取得できます。
 該当データが存在する場合は「true」、1件もデータがない場合や、該当データを全件処理した場合には、
「false」が帰ってくるので、trueの場合はログイン、falseの場合はエラーという風に処理を分けて行きます。
String url = "";
if (result.next() == true){
ログイン処理
url = "/main.jsp";
}else {
エラー処理
url = "/error.jsp";
}
RequestDispatcher rd = req.getRequestDispatcher(url);
rd.forward(req,res);

ログインOKの場合には、「main.jsp」をセットし、
エラーの場合には、「error.jsp」をワークエリア「url」にセットします。

「RequestDispatcher」オブジェクトの
「forward」メソッドを使うことでJSPファイルを呼び出します。
 ログインOKの場合は「main.jsp」、
 エラーの場合は「error.jsp」ファイルを呼び出します。
 ログイン処理の基本的な流れと、データベースへのアクセスは一通り出来ていると思います。
 次回はセッション管理を含め、ログインからログアウトまでの処理を一通り行いたいと思います。
DataSourceを使ったMySQLのWeb出力  UP  ログイン処理その2
夏のボーナスキャンペーン 468×60