どこつぶ1
ログイン機能
===================================================================================
プログラムの流れ
===================================================================================
ユーザー(index.jsp):名前、パスワードを入力。送信ボタンを押下
↓
サーブレット(Login.java):リクエストスコープから名前とパスワードを取得。
↓
2つの値をUserクラスのコンストラクタに渡すUserクラスをインスタンス化。
↓
LoginLogicクラスをインスタンス化、executeメソッドにUserインスタンスを渡す
↓
executeメソッドの戻り値がtrueならセッションスコープをインスタンス化
Userインスタンスをスコープにセット
↓
jspにフォワード
↓
jsp(loginResult.jsp)Userクラスをスコープから取り出す
↓
スコープから取り出せたら、isLoginをtrueに
↓
isloginを元にログイン成功画面かログイン失敗画面をhtml上に作り上げる
===================================================================================
クラス概要
===================================================================================
---modelパッケージ---
User,Mutterクラス
この2つはJavaBeansでフィールドとコンストラクタ、ゲッタのみ
Logicクラス
booleanの返り値を持ち、引数にUserクラスインスタンスを用い、
パスワードとUserのフィールドのパスワードが一致するか
booleanで返すだけのクラス。この機能を持つメソッド1つのみがある
---servletパッケージ---
LoginLogicクラス
最も最初にpostにより呼び出されるサーブレットでUserクラス、Loginクラスをインスタンス化し
LoginのメソッドにUserインスタンスを渡しtrueが返ってこればセッションスコープにUserインスタンスを格納、
ログイン成功、ログイン失敗のそれぞれのJspファイルにフォワードするクラス
===================================================================================
プログラムパーツ
===================================================================================
-index.jspフォームタグ-
-リクエストスコープからの値の取得-
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String pass = request.getParameter("pass");
-Sessionインスタンスの取得-
HttpSession session = request.getSession();
session.setAttribute("loginUser", user);
-フォワード-
RequestDispatcher dispatcher =
request.getRequestDispatcher("/WEB-INF/jsp/loginResult.jsp");
dispatcher.forward(request, response);
---ログイン結果表示jsp---
-インポート文-
<%@ page import="model.User" %>
-セッションからインスタンスの取得-
<%
User loginUser = (User) session.getAttribute("loginUser");
%>
-セッションスコープから値が取得できているかどうか-
if(loginUser != null){}
-値の出力-
<%= loginUser.getName()%>
-----------------------------------------------------------------------------
--- JSTLを使ったresult.jspの書き方 ---
-ディレクティブ-
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>