回答編集履歴

5

質問者さんの指摘を反映

2015/11/13 08:30

投稿

argius
argius

スコア9390

test CHANGED
@@ -8,11 +8,21 @@
8
8
 
9
9
  ```lang-java
10
10
 
11
+ User user=new User(name,pass);
12
+
13
+
14
+
15
+ LoginLogic loginLogic=new LoginLogic();
16
+
17
+ boolean isLogin=loginLogic.execute(user);
18
+
19
+
20
+
11
- if ( ... ) {
21
+ if (isLogin) {
12
22
 
13
23
  // ログインに成功したとき
14
24
 
15
- session.setAttribute("loginUser", new User());
25
+ session.setAttribute("loginUser", user);
16
26
 
17
27
  }
18
28
 

4

追記2を訂正

2015/11/13 08:30

投稿

argius
argius

スコア9390

test CHANGED
@@ -46,6 +46,8 @@
46
46
 
47
47
  ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
48
48
 
49
+ その場合、ログインに失敗したときの`remove`は無くしてもOKです。
50
+
49
51
  (eripongさん、ご指摘ありがとうございます。)
50
52
 
51
53
 

3

追記2

2015/11/13 07:53

投稿

argius
argius

スコア9390

test CHANGED
@@ -39,3 +39,13 @@
39
39
  ちなみに、ログアウトなどで`loginUser`だけでなくセッション自体を破棄する場合は、`session.invalidate()`を実行します。
40
40
 
41
41
 
42
+
43
+
44
+
45
+ (さらに追記)
46
+
47
+ ログイン画面のサーブレットでは必ず最初に`session.invalidate()`しても良いかも知れません。
48
+
49
+ (eripongさん、ご指摘ありがとうございます。)
50
+
51
+

2

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

2015/11/13 07:50

投稿

argius
argius

スコア9390

test CHANGED
@@ -25,3 +25,17 @@
25
25
  }
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ (追記)
36
+
37
+
38
+
39
+ ちなみに、ログアウトなどで`loginUser`だけでなくセッション自体を破棄する場合は、`session.invalidate()`を実行します。
40
+
41
+

1

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

2015/11/13 07:47

投稿

argius
argius

スコア9390

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