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

回答編集履歴

1

追記

2015/11/17 11:31

投稿

argius
argius

スコア9396

answer CHANGED
@@ -4,4 +4,32 @@
4
4
  おそらく`NullPointerException`が出ているのだと思いますが、その場合は、`session`が`null`だったら`session.invalidate()`を実行しないようにすれば良いです。
5
5
 
6
6
 
7
- `null`という概念が少し難しいのかも知れませんね。
7
+ `null`という概念が少し難しいのかも知れませんね。
8
+
9
+
10
+ ---
11
+
12
+ (追記)
13
+
14
+
15
+ セッションの処理を、下記のように2箇所修正してください。
16
+ 2つ目のは、`getSession(true)`の`true`がポイントです。
17
+
18
+
19
+ ```lang-java
20
+ // セッションが残っている場合は破棄
21
+ HttpSession session = request.getSession();
22
+ if (session != null) {
23
+ session.invalidate();
24
+ }
25
+ ```
26
+
27
+ ```lang-java
28
+ // ログイン成功時の処理
29
+ if (isLogin) {
30
+ // セッションを新しく作り、
31
+ // ユーザー情報をセッションスコープに保存
32
+ HttpSession newSession = request.getSession(true);
33
+ newSession.setAttribute("loginUser", user);
34
+ }
35
+ ```