質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

1回答

6519閲覧

struts セッションを用いたログイン画面について

amono

総合スコア12

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

0グッド

0クリップ

投稿2016/06/18 05:30

編集2016/06/18 05:38

いつもお世話になっております。
私はstrutsを使用した簡単なサイトを作ることになりましたが、
ログインとログアウト画面を作成する際、セッションの使用方法が分からないので質問させて頂きます。

以下にログインのページから飛んできたAcionを想定して書いています。

lang

1public class LoginCheck extends Action { 2 @Override 3 public ActionForward execute(ActionMapping mapping, ActionForm form, 4 HttpServletRequest request, HttpServletResponse response) 5 throws Exception { 6 HttpSession session = request.getSession(); 7 // DyanActionFormからパラメータを受け取る 8 DynaActionForm loginForm = (DynaActionForm) form; 9 int empId = Integer.parseInt((String) loginForm.get("empId")); 10 String empPass = (String)loginForm.get("empPass"); 11 12 // EmployeeDaoからempIdを引数にDBからデータを取ってくる 13 EmployeeBean employeeBean = EmployeeDao.findEmployeeById(empId); 14 15 // 入力パスワードとDBから取ってきたパスワードが一致しなかったら再度ログインページへ 16 if (empPass.equals(employeeBean.getEmpPass())) { 17 request.setAttribute("errMessage", errMessage); 18 return mapping.findForward("failed"); 19 } else { 20 // 一致したらDBの情報をリクエストスコープにセットして次のページへ 21 List<EmployeeBean> employeeList = EmployeeDao.getAllEmployeeContains(); 22 if (!(employeeList.isEmpty())) { 23 request.setAttribute("employeeList", employeeList); 24 return mapping.findForward("success"); 25 } else { 26 return mapping.findForward("failed"); 27 } 28 } 29

こう書いてみたもの結局セッションはどこで書いたらいいのかわかりません。

ログアウトの場合はセッションを破棄してログインページに戻せばいいので理解できたのですが、ログインの場合どのようなセッションの処理をしたらいいのか分かりません。
何かセッションスコープに値をセットする必要があるのでしょうか?

アドバイスを頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Javaサーブレット仕様では、独自にログイン機能を作らなくても標準でログイン機能を提供する仕組み(JAAS)があります。
Strutsは特に認証の機能は提供されていませんので、Javaのサーブレット仕様にあるFORM認証を使うのが良いでしょうか。

JavaDrive:FORM認証
TECHSCORE:11.2. FORM認証

この認証機構を使うことで、ログインしていないと特定のURLにアクセスができないよう制限をかけることがweb.xmlの設定だけで可能です。

投稿2016/06/18 05:51

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amono

2016/06/18 08:26

回答ありがとうございます。サーブレットにこのような仕様があるとは知りませんでした。参考にさせて頂きたいのですが、私自身まだ会社の研修生の身でして出来ることならカスタムで作りたいです。 迷惑でなければアドバイスを頂けないでしょか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問