回答編集履歴
5
質問者さんの指摘を反映
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",
|
13
|
+
session.setAttribute("loginUser", user);
|
9
14
|
}
|
10
15
|
else {
|
11
16
|
// ログインに失敗したとき
|
4
追記2を訂正
answer
CHANGED
@@ -22,4 +22,5 @@
|
|
22
22
|
|
23
23
|
(さらに追記)
|
24
24
|
ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
|
25
|
+
その場合、ログインに失敗したときの`remove`は無くしてもOKです。
|
25
26
|
(eripongさん、ご指摘ありがとうございます。)
|
3
追記2
answer
CHANGED
@@ -18,3 +18,8 @@
|
|
18
18
|
(追記)
|
19
19
|
|
20
20
|
ちなみに、ログアウトなどで`loginUser`だけでなくセッション自体を破棄する場合は、`session.invalidate()`を実行します。
|
21
|
+
|
22
|
+
|
23
|
+
(さらに追記)
|
24
|
+
ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
|
25
|
+
(eripongさん、ご指摘ありがとうございます。)
|
2
セッション破棄について追記
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
表示崩れ(マークアップ失敗)を訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
以前に一度成功して`loginUser`に`User`がセットされてしまうと、明示的に削除しないと`User`は残ったままです。
|
2
2
|
`session.removeAttribute("loginUser");`を実行して、`loginUser`の中を消す必要があると思います。
|
3
3
|
|
4
4
|
|