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

ログイン処理その2

 データベースへの問い合わせまでを前回行ったのですが、今回はセッション管理の機能を使ってログイン情報を保持させていきたいと思います。
<%@ page contentType="text/html; charset=shift_jis" %>
<%
if (session.getAttribute("LOGIN") == null){
%>
<jsp:forward page="index.html" />
<%
}else{
%>
<%
}
%>
<HTML>
<HEAD>
<TITLE>メインメニュー</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<TBODY>
<TR>
<TD>セッション情報</TD>
<TD><%= session.getAttribute("LOGIN") %></TD>
<TD>学生証番号</TD>
<TD><%= request.getAttribute("uid") %></TD>
<TD>氏名</TD>
<TD><%= request.getAttribute("name") %></TD>
<TD><A href="logout">ログアウト</A></TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>
 前回では単純にデータベースにログイン情報を問い合わせただけだったのですが、今回はセッション管理機能を使ってセッション情報を登録していきたいと思います。
まず、ログインしたときのメインになるページを作成します。
 通常セッション情報を画面上に表示することはないのですが、今回は確認のために、セッション情報を画面上に表示させています。

セッション情報以外には、学生証番号と氏名を表示させます。
 学生証番号と氏名については、RequestDispatcherオブジェクトを使用しています。
 RequestDispatcherオブジェクトはサーブレット間での情報のやり取りに利用します。
 あらかじめログインサーブレットで登録しておくことで、呼び出すことが出来ます。
 メイン画面が出来たら、前回作ったログインサーブレットにセッションの処理を追加します。
HttpSession session = req.getSession(true);
セッションを開始するには、getSessionメソッドを使います。引数に「true」を入れた場合には、新規にセッションを作成します。
session.setAttribute("LOGIN", Integer.toString(i));
req.setAttribute("uid",user_id);
req.setAttribute("name",wname);
セッションを開始したら、「setAttribute」メソッドを使って、情報を保存して行きます。
今回保存するのは、上から生徒テーブルのID、学生証番号、氏名の3つです。
 セッション情報の登録が出来たら、「main.jsp」に処理を引き渡す必要があります。ログインサーブレットから、直接HTMLを記述することも出来ますが、それでは画面を変更する際にいちいちコンパイルし直す必要があるため、JSPファイルをつくりそちらに処理を引き継ぐ方が画面の内容を変えたい場合にもコンパイルする必要がなくなり便利です。
 JSPファイルに処理を引き継ぐ場合には、RequestDispatcherオブジェクトのforwardメソッドを使います。
url = "/main.jsp";
RequestDispatcher rd = req.getRequestDispatcher(url);
rd.forward(req,res);
上記の設定をログインサーブレットに追加することで、「main.jsp」に処理が引き継がれます。
実際に、ログインの処理を行ってみます。

セッション情報には”1”が入っています。これは、データベースの生徒テーブルのIDです。
学生証番号には、”t01001”氏名には「のり」となっています。
この情報はそれぞれ性とテーブルの”user_id”と”name”の情報をRequestDispatcherオブジェクトで引き継いだものになります。
 セッション情報がない状態で「main.jsp」を呼び出した場合には、ログイン画面が表示されるようになっています。
これは、「main.jsp」ファイルの中で、セッション情報のチェックを行っています。
 最後にログアウトの処理を行いたいと思います。
 今回は単純にセッションを終了させるだけにしています。
package control;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;


public class LogoutServ extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

HttpSession session = request.getSession();
session.invalidate();
response.sendRedirect("index.html");
}
}
「session.invalidate()」でセッションを開放します。
セッションを開放した後には、ログイン画面をよびだしています。。
 これで、ログインからログアウトまでの基本的な処理が可能になりました。
ログイン処理その1  UP  タイピングデータ作成
夏のボーナスキャンペーン 468×60