どこつぶ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"%>