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

質問編集履歴

6

タイトルの変更

2020/04/24 05:24

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- セッションスコープの受け渡しいて
1
+ セッションスコープに値を保存してるはずなのに、NullPointerエラーが出しまう。
body CHANGED
File without changes

5

2020/04/24 05:24

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  謎が多いです。やれることはやったのですが、解決できません。
10
10
 
11
+ お願いします、助けてください。
12
+
11
13
  ### 発生している問題・エラーメッセージ
12
14
  ```
13
15
  HTTPステータス 500 -

4

2020/04/24 05:22

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  ユーザー登録が完了した後に、ユーザーIDとパスワードを用いてログインをしようとしている時に以下のエラーがでました。
8
8
 
9
+ 謎が多いです。やれることはやったのですが、解決できません。
10
+
9
11
  ### 発生している問題・エラーメッセージ
10
12
  ```
11
13
  HTTPステータス 500 -

3

詳細を付け加えました

2020/04/24 04:48

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
File without changes
body CHANGED
@@ -338,6 +338,8 @@
338
338
 
339
339
  ですが、その後ログインを試みたところ、エラーメッセージの通りなのですが、User_MainPageServlet.javaの〇部分にてエラーが発生しました。NullPointerと出ているので対象の値がNullになっているかと思ったのですが、セッションに保存されており、セッションを呼び出していると思ってますので謎が深まっております。ちなみにlogin.jspにて入力したユーザーIDとパスワードをSystem.out.println(~)にてちゃんと値が格納されているか確認をしたところ、しっかりコンソールにて出力されていました。
340
340
 
341
+ session.setAttribute("userbeanses", ub)で値を設定後、別のサーブレットでUserBean ub = (UserBean) session.getAttribute("userbeanses");するとnullになってしまう理由が理解できません....(get/setしているはずなのに)
342
+
341
343
  多数の長いソースコードを張り付けて申し訳ありませんがご協力本当によろしくお願いいたします。
342
344
 
343
345
 

2

マークダウンに変更

2020/04/24 02:16

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,10 @@
7
7
  ユーザー登録が完了した後に、ユーザーIDとパスワードを用いてログインをしようとしている時に以下のエラーがでました。
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
+ ```
11
+ HTTPステータス 500 -
10
12
 
13
+
11
14
  type 例外レポート
12
15
 
13
16
  メッセージ
@@ -16,8 +19,7 @@
16
19
 
17
20
  例外
18
21
  java.lang.NullPointerException
19
- MainPage.User_MainPageServlet.doGet(User_MainPageServlet.java:45)
20
- MainPage.User_MainPageServlet.doPost(User_MainPageServlet.java:23)
22
+ MainPage.User_MainPageServlet.doPost(User_MainPageServlet.java:36)
21
23
  javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
22
24
  javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
23
25
  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
@@ -25,9 +27,11 @@
25
27
 
26
28
  注意 原因のすべてのスタックトレースは、Apache Tomcat/8.0.36のログに記録されています
27
29
 
28
- ### 該当のソースコード
29
30
 
31
+ Apache Tomcat/8.0.36
32
+ ```
30
- <UserBean.java(JavaBean)>
33
+ ###1.UserBean.java
34
+ ```
31
35
  package User;
32
36
  import java.io.Serializable;
33
37
  public class UserBean implements Serializable{
@@ -109,9 +113,9 @@
109
113
  }
110
114
 
111
115
  }
112
-
116
+ ```
113
-
114
- <User_Registerervlet.java(サーブレットクラス)>
117
+ ###2.User_RegisterServlet.java(サーブレットクラス)
118
+ ```
115
119
  package MainPage;
116
120
 
117
121
  import java.io.IOException;
@@ -133,81 +137,86 @@
133
137
  private static final long serialVersionUID = 1L;
134
138
 
135
139
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
136
- // 文字コードエンコーディング
140
+ /*文字コードエンコーディング*/
137
141
  request.setCharacterEncoding("UTF-8");
138
142
  response.setCharacterEncoding("UTF-8");
139
143
  response.setContentType("text/html;charset=UTF-8");
140
144
 
141
145
 
142
- // 遷移先
146
+ /*遷移先*/
143
- String url = null;
147
+ String url = null;
144
148
 
145
- //User情報取得
149
+ /*User情報取得*/
146
- UserBean ub = new User.UserBean();
150
+ UserBean ub = new User.UserBean();
147
151
 
152
+ /*パラメータの取得*/
148
- String name= request.getParameter("name");
153
+ String name= request.getParameter("name");
149
- String sex = request.getParameter("sex");
154
+ String sex = request.getParameter("sex");
150
- String age = request.getParameter("age");
155
+ String age = request.getParameter("age");
151
- String year = request.getParameter("year");
156
+ String year = request.getParameter("year");
152
- String month = request.getParameter("month");
157
+ String month = request.getParameter("month");
153
- String day = request.getParameter("day");
158
+ String day = request.getParameter("day");
154
- String height = request.getParameter("tall");
159
+ String height = request.getParameter("tall");
155
- String weight = request.getParameter("weight");
160
+ String weight = request.getParameter("weight");
156
- String userid = request.getParameter("userid");
161
+ String userid = request.getParameter("userid");
157
- String password = request.getParameter("password");
162
+ String password = request.getParameter("password");
158
163
 
159
- String birth = year+"年"+month+"月"+day+"日";
164
+ String birth = year+"年"+month+"月"+day+"日";
160
165
 
161
166
 
162
- ub.setName(name);
167
+ ub.setName(name);
163
- ub.setSex(sex);
168
+ ub.setSex(sex);
164
- ub.setAge(age);
169
+ ub.setAge(age);
165
- ub.setBirth(birth);
170
+ ub.setBirth(birth);
166
- ub.setHeight(height);
171
+ ub.setHeight(height);
167
- ub.setWeight(weight);
172
+ ub.setWeight(weight);
168
- ub.setUserid(userid);
173
+ ub.setUserid(userid);
169
- ub.setPassword(password);
174
+ ub.setPassword(password);
170
175
 
171
- System.out.println(ub.getName());
172
- System.out.println(ub.getSex());
173
- System.out.println(ub.getAge());
174
- System.out.println(ub.getBirth());
175
- System.out.println(ub.getHeight());
176
- System.out.println(ub.getWeight());
177
- System.out.println(ub.getUserid());
178
- System.out.println(ub.getPassword());
179
176
 
177
+ /*パラメータを取得で来ているかどうかの確認*/
178
+ System.out.println(ub.getName());
179
+ System.out.println(ub.getSex());
180
+ System.out.println(ub.getAge());
181
+ System.out.println(ub.getBirth());
182
+ System.out.println(ub.getHeight());
183
+ System.out.println(ub.getWeight());
184
+ System.out.println(ub.getUserid());
180
- HttpSession session = request.getSession();
185
+ System.out.println(ub.getPassword());
181
- session.setAttribute("userbeanses", ub);
182
- UserBean ub_test = (UserBean) session.getAttribute("userbeanses");
183
186
 
184
- ☆ System.out.println(ub_test.getName());
185
- System.out.println(ub_test.getSex());
186
- System.out.println(ub_test.getAge());
187
- System.out.println(ub_test.getBirth());
188
- System.out.println(ub_test.getHeight());
189
- System.out.println(ub_test.getWeight());
190
- System.out.println(ub_test.getUserid());
191
- System.out.println(ub_test.getPassword());
187
+ HttpSession session = request.getSession();
192
- //ログイン判定
193
- UserAuthBean uab = new User.UserAuthBean();
188
+ session.setAttribute("userbeanses", ub);
189
+ UserBean ub_test = (UserBean) session.getAttribute("userbeanses");
194
190
 
191
+ /*セッションスコープに保存されているかの確認*/
192
+ System.out.println(ub_test.getName());
193
+ System.out.println(ub_test.getSex());
194
+ System.out.println(ub_test.getAge());
195
+ System.out.println(ub_test.getBirth());
196
+ System.out.println(ub_test.getHeight());
197
+ System.out.println(ub_test.getWeight());
198
+ System.out.println(ub_test.getUserid());
199
+ System.out.println(ub_test.getPassword());
200
+ //ログイン判定
201
+ UserAuthBean uab = new User.UserAuthBean();
202
+
195
- if(uab.execute(ub) == true) {
203
+ if(uab.execute(ub) == true) {
196
- //認証に成功
204
+ /*認証に成功*/
197
- //Beansをセッションオブジェクトに保存
198
- url = "/WEB-INF/Login_Register/register_end.jsp";
205
+ url = "/WEB-INF/Login_Register/register_end.jsp";
199
- }else{
206
+ }else{
200
- //認証に失敗
207
+ /*認証に失敗*/
201
- url = "/WEB-INF/Login_Register/register_error.jsp";
208
+ url = "/WEB-INF/Login_Register/register_error.jsp";
202
- }
209
+ }
203
- // 画面遷移
210
+ /*画面遷移*/
204
- ServletContext servletContext = getServletContext();
211
+ ServletContext servletContext = getServletContext();
205
- RequestDispatcher rd = servletContext.getRequestDispatcher(url);
212
+ RequestDispatcher rd = servletContext.getRequestDispatcher(url);
206
- rd.forward(request, response);
213
+ rd.forward(request, response);
207
- }
214
+ }
208
215
  }
209
216
 
210
-
217
+ ```
218
+ ###3.login.jsp(JSPファイル)
219
+ ```
211
220
  <login.jsp(jspファイル(ログイン画面))
212
221
  <%@ page language="java" contentType="text/html; charset=UTF-8"
213
222
  pageEncoding="UTF-8"%>
@@ -239,9 +248,10 @@
239
248
 
240
249
  </body>
241
250
  </html>
251
+ ```
242
252
 
243
-
244
- <User_MainPageServlet.java(サーブレットクラス)>
253
+ ###4.User_MainPageServlet.java(サーブレットクラス)
254
+ ```
245
255
  package MainPage;
246
256
 
247
257
  import java.io.IOException;
@@ -255,55 +265,74 @@
255
265
  import javax.servlet.http.HttpSession;
256
266
 
257
267
  import User.UserBean;
258
- /**
268
+
259
- * Servlet implementation class User_MainPageServlet
260
- */
261
269
  @WebServlet("/MainPage/User_MainPageServlet")
262
270
  public class User_MainPageServlet extends HttpServlet {
263
271
  private static final long serialVersionUID = 1L;
264
272
 
273
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
274
+ /*文字コードエンコーディング*/
275
+ request.setCharacterEncoding("UTF-8");
276
+ response.setCharacterEncoding("UTF-8");
277
+ response.setContentType("text/html;charset=UTF-8");
265
278
 
279
+ /*遷移先*/
280
+ String url = null;
281
+
282
+ /*ログイン-ユーザーID_パスワード情報取得*/
283
+ String userid_login = request.getParameter("userid_login");
284
+ String password_login = request.getParameter("password_login");
285
+
286
+ HttpSession session = request.getSession();
287
+
288
+ UserBean ub = (UserBean) session.getAttribute("userbeanses");
289
+
266
- protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
290
+ if(userid_login == ub.getUserid() && password_login == ub.getPassword()) {
291
+ url = "/WEB-INF/Menu/mainmenu.jsp";
292
+ }else if((ub.getUserid() == "" && ub.getPassword() == "") || userid_login != ub.getUserid()&& password_login!=ub.getPassword()){
293
+ url = "WEB-INF/Login_Register/login_error";
294
+ }
295
+
296
+ /*画面遷移*/
297
+ RequestDispatcher rd = request.getRequestDispatcher(url);
267
- doGet(request,response);
298
+ rd.forward(request, response);
268
299
  }
269
300
 
301
+
270
302
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
271
- // 文字コードエンコーディング
303
+ /*文字コードエンコーディング*/
272
304
  request.setCharacterEncoding("UTF-8");
273
305
  response.setCharacterEncoding("UTF-8");
274
306
  response.setContentType("text/html;charset=UTF-8");
275
307
 
276
- // 遷移先
308
+ /*遷移先*/
277
- String url = null;
309
+ String url = null;
278
310
 
279
- //ログイン-ユーザーID_パスワード情報取得
311
+ /*ログイン-ユーザーID_パスワード情報取得*/
280
- String userid_login = request.getParameter("userid_login");
312
+ String userid_login = request.getParameter("userid_login");
281
- String password_login = request.getParameter("password_login");
313
+ String password_login = request.getParameter("password_login");
282
314
 
283
- HttpSession session = request.getSession();
315
+ HttpSession session = request.getSession();
284
316
 
285
- UserBean ub = (UserBean)session.getAttribute("userbeanses");
317
+ UserBean ub = (UserBean) session.getAttribute("userbeanses");
286
318
 
287
- 〇 if(userid_login == ub.getUserid() && password_login == ub.getPassword()) {
319
+ if(userid_login == ub.getUserid() && password_login == ub.getPassword()) {
288
- url = "/WEB-INF/Menu/mainmenu.jsp";
320
+ url = "/WEB-INF/Menu/mainmenu.jsp";
289
- }else if((ub.getUserid() == "" && ub.getPassword() == "") || userid_login
321
+ }else if((ub.getUserid() == "" && ub.getPassword() == "") || userid_login != ub.getUserid()&& password_login!=ub.getPassword()){
290
- != ub.getUserid()&& password_login!=ub.getPassword()){
291
- url = "WEB-INF/Login_Register/login_error";
322
+ url = "WEB-INF/Login_Register/login_error";
292
- }
323
+ }
293
324
 
294
- System.out.println(ub.getUserid());
295
- System.out.println(ub.getPassword());
296
-
297
-
298
- // 画面遷移
325
+ /*画面遷移*/
299
- RequestDispatcher rd = request.getRequestDispatcher(url);
326
+ RequestDispatcher rd = request.getRequestDispatcher(url);
300
- rd.forward(request, response);
327
+ rd.forward(request, response);
301
328
  }
302
329
  }
303
330
 
304
331
 
332
+ ```
305
333
 
306
334
 
335
+
307
336
  ### 試したこと
308
337
  試したことというよりかは、ちゃんとセッションスコープに保存ができているかどうかの確認なのですが、User_Registerervlet.javaの☆部分にてSystem.out.println(ub_test.~)という形でセッションスコープに値がしっかり保存されているかどうかの確認をしたところ、しっかりコンソールにて値が出力されていました。
309
338
 

1

サーバーの種類追加

2020/04/23 16:16

投稿

shimchan1010
shimchan1010

スコア6

title CHANGED
File without changes
body CHANGED
@@ -309,9 +309,9 @@
309
309
 
310
310
  ですが、その後ログインを試みたところ、エラーメッセージの通りなのですが、User_MainPageServlet.javaの〇部分にてエラーが発生しました。NullPointerと出ているので対象の値がNullになっているかと思ったのですが、セッションに保存されており、セッションを呼び出していると思ってますので謎が深まっております。ちなみにlogin.jspにて入力したユーザーIDとパスワードをSystem.out.println(~)にてちゃんと値が格納されているか確認をしたところ、しっかりコンソールにて出力されていました。
311
311
 
312
- 多数の長いソースコードを張り付けて申し訳ありませんがご協力よろしくお願いいたします。
312
+ 多数の長いソースコードを張り付けて申し訳ありませんがご協力本当によろしくお願いいたします。
313
313
 
314
314
 
315
+
315
316
  ### 補足情報(FW/ツールのバージョンなど)
316
-
317
- ここにより詳細な情報を記載してください。
317
+ サーバー:Tomcat8.0vサーバー