質問編集履歴

2

コードを追加で記入いたしました。

2019/08/07 15:08

投稿

Saitamadesu4
Saitamadesu4

スコア6

test CHANGED
File without changes
test CHANGED
@@ -80,23 +80,121 @@
80
80
 
81
81
 
82
82
 
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
- ```Java
83
+ ```Jspファイル
84
+
85
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
86
+
87
+ pageEncoding="UTF-8" %>
88
+
89
+ <%@ taglib prefix= "c" uri="http://java.sun.com/jsp/jstl/core" %>
90
+
91
+ <!DOCTYPE html>
92
+
93
+ <html>
94
+
95
+ <head>
96
+
97
+ <meta charset="UTF-8">
98
+
99
+ <title>Cafede Botti</title>
100
+
101
+ </head>
102
+
103
+ <body>
104
+
105
+ <h2>新規ユーザー登録</h2>
106
+
107
+
108
+
109
+
110
+
111
+ <form action = "/CafedeBotti/FC" method = "post">
112
+
113
+
114
+
115
+ <div align = center>
116
+
117
+ Name<input type = "text" name = "userName2"><br>
118
+
119
+ Pass1<input type = "text" name = "newPassword"><br>
120
+
121
+ Pass2<input type = "text" name = "newPassword2">
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ <input type = "hidden" name = "ButtonID" value = "a006">
132
+
133
+
134
+
135
+ <input type = "submit" value = "submit">
136
+
137
+ </div>
138
+
139
+ </form>
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ <!-- <form action ="/CafedeBotti/FC" method = "post"> -->
168
+
169
+ <!-- <input type = text name = "userName2"><br> -->
170
+
171
+ <!-- <!-- パスワードを入力してください:<input type = "text" name = "newPassword"><br> -->
172
+
173
+ <!-- <!-- 再度パスワードを入力してください:<input type = "text" name = "newPassword2"> -->
174
+
175
+ <!-- <input type = "hidden" name = "ButtonID" value = "a006"> -->
176
+
177
+ <!-- <input type ="submit" value = "登録"> -->
178
+
179
+ <!-- </form> -->
180
+
181
+ <!-- </div> -->
182
+
183
+
184
+
185
+
186
+
187
+ <c:out value = "${message2.message}"/>
188
+
189
+
190
+
191
+ </body>
192
+
193
+ </html>
194
+
195
+ ```
196
+
197
+ ```Servlet
100
198
 
101
199
  package Servlet;
102
200
 
@@ -450,9 +548,91 @@
450
548
 
451
549
 
452
550
 
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+ ```
572
+
573
+ ```Message.java
574
+
575
+ package model;
576
+
577
+
578
+
579
+ public class Message {
580
+
581
+
582
+
583
+ //メンバ変数
584
+
585
+ private String message;
586
+
587
+
588
+
589
+ //引数1コンストラクタ
590
+
591
+ public Message (String message) {
592
+
593
+ this.message = message;
594
+
595
+
596
+
597
+ }
598
+
599
+
600
+
601
+ public String getMessage() {
602
+
603
+ return message;
604
+
605
+ }
606
+
607
+
608
+
609
+ public void setMessage(String message) {
610
+
611
+ this.message = message;
612
+
613
+ }
614
+
615
+ }
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+ ```
628
+
629
+
630
+
453
- ```Jsp
631
+ ```Top.jsp
454
-
632
+
455
- <%@ taglib prefix= "c" uri="http://java.sun.com/jsp/jstl/core" %>
633
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
634
+
635
+ pageEncoding="UTF-8"%>
456
636
 
457
637
  <!DOCTYPE html>
458
638
 
@@ -468,9 +648,9 @@
468
648
 
469
649
  <body>
470
650
 
651
+
652
+
471
- <h2>新規ユーザー登録</h2>
653
+ <h2>Cafede Botti</h2>
472
-
473
-
474
654
 
475
655
 
476
656
 
@@ -480,23 +660,15 @@
480
660
 
481
661
  <div align = center>
482
662
 
483
- Name<input type = "text" name = "userName2"><br>
663
+ Name<input type = "text" name = "userName"><br>
484
-
664
+
485
- Pass1<input type = "text" name = "newPassword"><br>
665
+ Pass<input type = "password" name = "userPass"><br>
486
-
487
- Pass2<input type = "text" name = "newPassword2">
666
+
488
-
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
667
+
668
+
669
+
670
+
497
- <input type = "hidden" name = "ButtonID" value = "a006">
671
+ <input type = "hidden" name = "ButtonID" value = "a004">
498
-
499
-
500
672
 
501
673
  <input type = "submit" value = "submit">
502
674
 
@@ -504,6 +676,24 @@
504
676
 
505
677
  </form>
506
678
 
679
+ <div align = "center">
680
+
681
+ <a href = "/CafedeBotti/FC?ButtonID=a005" > 初めての方はこちら </a><br>
682
+
683
+ </div>
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+ </body>
694
+
695
+ </html>
696
+
507
697
  ```
508
698
 
509
699
 
@@ -516,110 +706,4 @@
516
706
 
517
707
 
518
708
 
519
-
520
-
521
-
522
-
523
-
524
-
525
-
526
-
527
-
528
-
529
-
530
-
531
-
532
-
533
-
534
-
535
-
536
-
537
-
538
-
539
-
540
-
541
-
542
-
543
-
544
-
545
- ```
546
-
547
- ```Message.java
548
-
549
- package model;
550
-
551
-
552
-
553
- public class Message {
554
-
555
-
556
-
557
- //メンバ変数
558
-
559
- private String message;
560
-
561
-
562
-
563
- //引数1コンストラクタ
564
-
565
- public Message (String message) {
566
-
567
- this.message = message;
568
-
569
-
570
-
571
- }
572
-
573
-
574
-
575
- public String getMessage() {
576
-
577
- return message;
578
-
579
- }
580
-
581
-
582
-
583
- public void setMessage(String message) {
584
-
585
- this.message = message;
586
-
587
- }
588
-
589
- }
590
-
591
-
592
-
593
-
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
- ```
602
-
603
-
604
-
605
-
606
-
607
-
608
-
609
-
610
-
611
-
612
-
613
-
614
-
615
-
616
-
617
-
618
-
619
-
620
-
621
-
622
-
623
-
624
-
625
709
  #Java #jsp #質問 #エンジニア

1

再掲:コードを記載し、疑問点を整理し致しました。

2019/08/07 15:08

投稿

Saitamadesu4
Saitamadesu4

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,51 +1,625 @@
1
- __jspファイルからinputタグを使って、ユーザ名、パスワード、入力パスワードを入力て、Servletに送信Servletにて、パスワードと、再入力パスワードが一致しているか判定__### 前提・実現したいこと
2
-
3
-
4
-
5
- ここに質問の内容詳しく書てください。
6
-
7
- a b c それぞれstring型の文字列がて、jspファイルからinputタグでサーブレットにpost送信してます。
8
-
9
-
10
-
11
- If(a ==null){
12
-
13
- error 1
14
-
15
- }else if (b == null){
16
-
17
- error 2
18
-
19
- }else if(c ==null){
20
-
21
- error 3
22
-
23
- }else if(b.equals(c)){
24
-
25
- 処理1
26
-
27
- }else{
28
-
29
- error 4
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
- この時、inputタグ内に未入力項目あるかチェックできるように条件分岐を書いたつもりなのです
40
-
41
- どの項目を未入力にしても必ずerror 1が出力されてしまいます。
42
-
43
- ロジックに誤りがあるのでしょうか??
44
-
45
- とも出力(el式)に誤りがあるのでしょうか??
46
-
47
-
48
-
49
- どなか助けてください????‍♀️
1
+ 掲致ます
2
+
3
+ 表題の通り、
4
+
5
+ ①まずJspファイルでinputタグ使
6
+
7
+ userName2 ,newPassword,newPassword2属性にそれぞれ値を力してサーブレットに処理任せます。
8
+
9
+
10
+
11
+ ②同時に未入力チェックを行いたいので、
12
+
13
+ userName2がnullの場合、userPass1がnullの場合、userPass2がnullの場合に
14
+
15
+ それぞれエラーメッセージを生成し、①で使用したJspファイルにフォワードしてエラーメッセージを出力します。
16
+
17
+
18
+
19
+ ③そして、すべてのnullチェックをパスしたとき、userPass1とuserPass2の値が一致した場合、
20
+
21
+ Userインスタンスを生成して、元のJspファイルにフォワードする。
22
+
23
+ (ここではエラーメッセージの出力のみ確認したいので、Jspファイルには出力コードを書いていません。)
24
+
25
+
26
+
27
+ 以上①~③の処理を実行したいです。
28
+
29
+
30
+
31
+
32
+
33
+ しかし実際に未入力チェック(①)を行うと、想定下通りに動きません。
34
+
35
+ 具体的には、
36
+
37
+ userName2を未入力 newPasswordを入力 newPassword2を入力
38
+
39
+ →パスワードと再入力パスワード一致しません。出力。
40
+
41
+
42
+
43
+ userName2みを入力
44
+
45
+ →何も表示さない
46
+
47
+
48
+
49
+ といっ具合です。
50
+
51
+
52
+
53
+
54
+
55
+ 対策としてデバックをしてみたもののなぜか毎回、
56
+
57
+ ```サーブレットより一部抜粋
58
+
59
+ if (userName2 == null)
60
+
61
+ ```
62
+
63
+ の部分をスキップしてしまいます。
64
+
65
+
66
+
67
+ そこで、何か値が混入しているのか思いUserクラスのインスタンスを生成し、userName2の値をsetUserName(User.javaがもつメソッド)でインスタンスに設定→requestScopeに保存→元のJspファイルへフォワード→Jspファイルで出力
68
+
69
+ といった手順を試してもなにも値が出力されませんでした。
70
+
71
+
72
+
73
+
74
+
75
+ どなたかJavaに詳しい方、お助け下さい。
76
+
77
+ 長文駄文となってしまい誠に申し訳ございません。どうかご回答よろしくお願いいたします。
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ ```Java
100
+
101
+ package Servlet;
102
+
103
+
104
+
105
+ import java.io.IOException;
106
+
107
+ import java.util.ArrayList;
108
+
109
+
110
+
111
+ import javax.servlet.RequestDispatcher;
112
+
113
+ import javax.servlet.ServletException;
114
+
115
+ import javax.servlet.annotation.WebServlet;
116
+
117
+ import javax.servlet.http.HttpServlet;
118
+
119
+ import javax.servlet.http.HttpServletRequest;
120
+
121
+ import javax.servlet.http.HttpServletResponse;
122
+
123
+ import javax.servlet.http.HttpSession;
124
+
125
+
126
+
127
+ import model.FilterSearchLogic;
128
+
129
+ import model.Message;
130
+
131
+ import model.ShopList;
132
+
133
+ import model.User;
134
+
135
+ import model.UserLoginLogic;
136
+
137
+
138
+
139
+ /**
140
+
141
+ * Servlet implementation class FrontController
142
+
143
+ */
144
+
145
+ @WebServlet("/FC")
146
+
147
+ public class FrontController extends HttpServlet {
148
+
149
+ private static final long serialVersionUID = 1L;
150
+
151
+ ArrayList<ShopList> arraylist;
152
+
153
+
154
+
155
+ /**
156
+
157
+ * @see HttpServlet#HttpServlet()
158
+
159
+ */
160
+
161
+ public FrontController() {
162
+
163
+ super();
164
+
165
+ // TODO Auto-generated constructor stub
166
+
167
+ }
168
+
169
+
170
+
171
+ /**
172
+
173
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
174
+
175
+ */
176
+
177
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
178
+
179
+ // TODO Auto-generated method stub
180
+
181
+ request.setCharacterEncoding("UTF-8");
182
+
183
+
184
+
185
+ String ButtonID = request.getParameter("ButtonID");
186
+
187
+ if(ButtonID == null) {
188
+
189
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/Top.jsp");
190
+
191
+ dispatcher.forward(request, response);
192
+
193
+ }else if(ButtonID.equals("a001")) {
194
+
195
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/FilterdSearch.jsp");
196
+
197
+ dispatcher.forward(request, response);
198
+
199
+ }else if (ButtonID.equals("a002")){
200
+
201
+
202
+
203
+
204
+
205
+ }else if (ButtonID.equals("a003")) {
206
+
207
+ String wifi = request.getParameter("Wifi");
208
+
209
+ String customerBase = request.getParameter("CustomerBase");
210
+
211
+
212
+
213
+ if(wifi == null || customerBase == null) {
214
+
215
+ Message message = new Message ("全てのradioboxをマークしてください。");
216
+
217
+ request.setAttribute("message", message);
218
+
219
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/FilterdSearch.jsp");
220
+
221
+ dispatcher.forward(request, response);
222
+
223
+ }
224
+
225
+
226
+
227
+ //Wifi,CustomerBaseが共にnull出ない場合、
228
+
229
+ else {
230
+
231
+ ShopList ShopList = new ShopList();
232
+
233
+ ShopList.setWifi(wifi);
234
+
235
+ ShopList.setCustomerBase(customerBase);
236
+
237
+
238
+
239
+ //FilterSearchLogicメソッドを呼び出す。
240
+
241
+ FilterSearchLogic FilterSearchLogic = new FilterSearchLogic();
242
+
243
+ arraylist = FilterSearchLogic.FilterSearchLogicExecute(ShopList);
244
+
245
+ request.setAttribute("list",arraylist);
246
+
247
+ //FilterdSearchResult.jspにフォワードする
248
+
249
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/FilterdSearchResult.jsp");
250
+
251
+ dispatcher.forward(request, response);
252
+
253
+ }
254
+
255
+ }else if (ButtonID.equals("a005")) {
256
+
257
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
258
+
259
+ dispatcher.forward(request, response);
260
+
261
+ }
262
+
263
+ }
264
+
265
+
266
+
267
+
268
+
269
+ /**
270
+
271
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
272
+
273
+ */
274
+
275
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
276
+
277
+ // TODO Auto-generated method stub
278
+
279
+
280
+
281
+ //ログイン画面から送られてきたrequestからuserNameとuserPassを取り出す。
282
+
283
+ request.setCharacterEncoding("UTF-8");
284
+
285
+ //requestインスタンスからButtonIDを取り出す。
286
+
287
+ String ButtonID = request.getParameter("ButtonID");
288
+
289
+ //String userName = request.getParameter("userName");
290
+
291
+ //String userPass = request.getParameter("userPass");
292
+
293
+ //userNameかuserPassが未入力だとMessageインスタンスを生成し、リクエストスコープに格納する。
294
+
295
+ if(ButtonID.equals("a004")) {
296
+
297
+ String userName = request.getParameter("userName");
298
+
299
+ String userPass = request.getParameter("userPass");
300
+
301
+
302
+
303
+ if (userName == null || userPass == null) {
304
+
305
+ Message message2 = new Message("ユーザー名またはパスワードが未入力です。");
306
+
307
+ request.setAttribute("message", message2);
308
+
309
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/LoginFail.jsp");
310
+
311
+ dispatcher.forward(request, response);
312
+
313
+ }else {
314
+
315
+
316
+
317
+ //Userインスタンスを生成。
318
+
319
+ User user = new User (userName,userPass);
320
+
321
+ boolean loginistrue;
322
+
323
+
324
+
325
+
326
+
327
+ //UserLoginLogicメソッドを呼び出す。
328
+
329
+ UserLoginLogic UserLoginLogic = new UserLoginLogic();
330
+
331
+
332
+
333
+ loginistrue = UserLoginLogic.loginExcecute(user);
334
+
335
+
336
+
337
+
338
+
339
+ //loginistrueの値で条件分岐
340
+
341
+ if (loginistrue == true) {
342
+
343
+ //SessionScopeに名前のみ保存
344
+
345
+ HttpSession session = request.getSession();
346
+
347
+ session.setAttribute("user", user);
348
+
349
+ //ログイン結果画面にフォワードする。
350
+
351
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/LoginSuccess.jsp");
352
+
353
+ dispatcher.forward(request, response);
354
+
355
+ }else {
356
+
357
+ Message message = new Message("ユーザー名またはパスワードが正しくありません。");
358
+
359
+ request.setAttribute("message", message);
360
+
361
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/LoginFail.jsp");
362
+
363
+ dispatcher.forward(request, response);
364
+
365
+ }
366
+
367
+ }
368
+
369
+ }else if (ButtonID.equals("a006")) {
370
+
371
+ String userName2 = request.getParameter("userName2");
372
+
373
+ String userPass1 = request.getParameter("newPassword");
374
+
375
+ String userPass2 = request.getParameter("newPassword2");
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+ if (userName2 == null) {
384
+
385
+ Message message2 = new Message("ユーザー名が未入力です。");
386
+
387
+ request.setAttribute("message2",message2 );
388
+
389
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
390
+
391
+ dispatcher.forward(request, response);
392
+
393
+
394
+
395
+ }else if(userPass1 == null) {
396
+
397
+ Message message2 = new Message("パスワードが未入力です。");
398
+
399
+ request.setAttribute("message2",message2 );
400
+
401
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
402
+
403
+ dispatcher.forward(request, response);
404
+
405
+
406
+
407
+
408
+
409
+ }else if(userPass2 == null) {
410
+
411
+ Message message2 = new Message("再入力パスワードが未入力です。");
412
+
413
+ request.setAttribute("message2",message2 );
414
+
415
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
416
+
417
+ dispatcher.forward(request, response);
418
+
419
+ }
420
+
421
+ else if(userPass1.equals(userPass2)) {
422
+
423
+ User user2 = new User(userName2,userPass1);
424
+
425
+ request.setAttribute("user2",user2 );
426
+
427
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
428
+
429
+ dispatcher.forward(request, response);
430
+
431
+ }else {
432
+
433
+ Message message2 = new Message("パスワードと再入力パスワードが一致しません。");
434
+
435
+ request.setAttribute("message2",message2 );
436
+
437
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/NewRegist.jsp");
438
+
439
+ dispatcher.forward(request, response);
440
+
441
+ }
442
+
443
+ }
444
+
445
+ }
446
+
447
+ }
448
+
449
+
450
+
451
+
452
+
453
+ ```Jsp
454
+
455
+ <%@ taglib prefix= "c" uri="http://java.sun.com/jsp/jstl/core" %>
456
+
457
+ <!DOCTYPE html>
458
+
459
+ <html>
460
+
461
+ <head>
462
+
463
+ <meta charset="UTF-8">
464
+
465
+ <title>Cafede Botti</title>
466
+
467
+ </head>
468
+
469
+ <body>
470
+
471
+ <h2>新規ユーザー登録</h2>
472
+
473
+
474
+
475
+
476
+
477
+ <form action = "/CafedeBotti/FC" method = "post">
478
+
479
+
480
+
481
+ <div align = center>
482
+
483
+ Name<input type = "text" name = "userName2"><br>
484
+
485
+ Pass1<input type = "text" name = "newPassword"><br>
486
+
487
+ Pass2<input type = "text" name = "newPassword2">
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+ <input type = "hidden" name = "ButtonID" value = "a006">
498
+
499
+
500
+
501
+ <input type = "submit" value = "submit">
502
+
503
+ </div>
504
+
505
+ </form>
506
+
507
+ ```
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+ ```
546
+
547
+ ```Message.java
548
+
549
+ package model;
550
+
551
+
552
+
553
+ public class Message {
554
+
555
+
556
+
557
+ //メンバ変数
558
+
559
+ private String message;
560
+
561
+
562
+
563
+ //引数1コンストラクタ
564
+
565
+ public Message (String message) {
566
+
567
+ this.message = message;
568
+
569
+
570
+
571
+ }
572
+
573
+
574
+
575
+ public String getMessage() {
576
+
577
+ return message;
578
+
579
+ }
580
+
581
+
582
+
583
+ public void setMessage(String message) {
584
+
585
+ this.message = message;
586
+
587
+ }
588
+
589
+ }
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+ ```
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
50
624
 
51
625
  #Java #jsp #質問 #エンジニア