teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

質問者さんの指摘を反映

2015/11/13 08:30

投稿

argius
argius

スコア9396

answer CHANGED
@@ -3,9 +3,14 @@
3
3
 
4
4
 
5
5
  ```lang-java
6
+ User user=new User(name,pass);
7
+
8
+ LoginLogic loginLogic=new LoginLogic();
9
+ boolean isLogin=loginLogic.execute(user);
10
+
6
- if ( ... ) {
11
+ if (isLogin) {
7
12
  // ログインに成功したとき
8
- session.setAttribute("loginUser", new User());
13
+ session.setAttribute("loginUser", user);
9
14
  }
10
15
  else {
11
16
  // ログインに失敗したとき

4

追記2を訂正

2015/11/13 08:30

投稿

argius
argius

スコア9396

answer CHANGED
@@ -22,4 +22,5 @@
22
22
 
23
23
  (さらに追記)
24
24
  ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
25
+ その場合、ログインに失敗したときの`remove`は無くしてもOKです。
25
26
  (eripongさん、ご指摘ありがとうございます。)

3

追記2

2015/11/13 07:53

投稿

argius
argius

スコア9396

answer CHANGED
@@ -18,3 +18,8 @@
18
18
  (追記)
19
19
 
20
20
  ちなみに、ログアウトなどで`loginUser`だけでなくセッション自体を破棄する場合は、`session.invalidate()`を実行します。
21
+
22
+
23
+ (さらに追記)
24
+ ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
25
+ (eripongさん、ご指摘ありがとうございます。)

2

セッション破棄について追記

2015/11/13 07:50

投稿

argius
argius

スコア9396

answer CHANGED
@@ -11,4 +11,10 @@
11
11
  // ログインに失敗したとき
12
12
  session.removeAttribute("loginUser");
13
13
  }
14
- ```
14
+ ```
15
+
16
+ ---
17
+
18
+ (追記)
19
+
20
+ ちなみに、ログアウトなどで`loginUser`だけでなくセッション自体を破棄する場合は、`session.invalidate()`を実行します。

1

表示崩れ(マークアップ失敗)を訂正

2015/11/13 07:47

投稿

argius
argius

スコア9396

answer CHANGED
@@ -1,4 +1,4 @@
1
- ```以前に一度成功して`loginUser`に`User`がセットされてしまうと、明示的に削除しないと`User`は残ったままです。
1
+ 以前に一度成功して`loginUser`に`User`がセットされてしまうと、明示的に削除しないと`User`は残ったままです。
2
2
  `session.removeAttribute("loginUser");`を実行して、`loginUser`の中を消す必要があると思います。
3
3
 
4
4