質問編集履歴

5

修正

2019/09/05 23:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,15 +42,23 @@
42
42
 
43
43
 
44
44
 
45
- SearchServlet.jspを実行するとログイン画面が表示されて、
45
+ login.jspを実行するとログイン画面が表示されて、
46
-
46
+
47
- userid:user01、password:passwordと打ち込んでもログインできません。
47
+ userid:user01、password:passwordと打ち込むと、
48
+
49
+
50
+
51
+ ウェブ:http://localhost:8080/10_todo_425_442/j_security_checkで、
52
+
53
+ 「ログインエラーです。」という表示がでてログインできません。
48
54
 
49
55
  すべての./jsp/*,./servlet/*のファイルが同じ症状です。
50
56
 
51
57
 
52
58
 
59
+ エラーを見てserver.xml,tomcat-uses.xml,Context.xml,web.xmlをいろいろ値を変えてみたのですが。
60
+
53
- お願いいたします。
61
+ うまくいきません。よろしくお願いいたします。
54
62
 
55
63
 
56
64
 
@@ -168,7 +176,63 @@
168
176
 
169
177
  ```
170
178
 
171
-
179
+ ```ここに言語を入力
180
+
181
+ //WebContent/META-INF/context.xml
182
+
183
+ <?xml version="1.0" encoding="UTF-8"?>
184
+
185
+
186
+
187
+ <!DOCTYPE html>
188
+
189
+
190
+
191
+ <Context>
192
+
193
+
194
+
195
+ <Resource driverClassName="org.mariadb.jdbc.Driver"
196
+
197
+
198
+
199
+ auth="Container"
200
+
201
+ initialSize="1"
202
+
203
+ maxIdle="1"
204
+
205
+ maxWaitMillis="-1"
206
+
207
+ name="jdbc/MariaDB"
208
+
209
+ type="javax.sql.DataSource"
210
+
211
+ url="jdbc:mysql://127.0.0.1:3306/test"
212
+
213
+ username="root"
214
+
215
+ password="password"
216
+
217
+ defaultAutoCommit="false" />
218
+
219
+ <ResourceLink name="jdbc/MariaDB" //参考書:jdbc/authDBで結果は同じ表示です
220
+
221
+
222
+
223
+ global="jdbc/MariaDB"      //参考書:jdbc/authDBで結果は同じ表示です
224
+
225
+ type="javax.sql.DataSource" />
226
+
227
+
228
+
229
+ </Context>
230
+
231
+
232
+
233
+
234
+
235
+ ```
172
236
 
173
237
  ```
174
238
 
@@ -304,132 +368,6 @@
304
368
 
305
369
  ```
306
370
 
307
- // SearchServlet.javaを実行して一覧画面を表示する。
308
-
309
-
310
-
311
- package todo.web;
312
-
313
-
314
-
315
- import java.io.IOException;
316
-
317
- import java.util.List;
318
-
319
-
320
-
321
- import javax.servlet.RequestDispatcher;
322
-
323
- import javax.servlet.ServletException;
324
-
325
- import javax.servlet.annotation.WebServlet;
326
-
327
- import javax.servlet.http.HttpServlet;
328
-
329
- import javax.servlet.http.HttpServletRequest;
330
-
331
- import javax.servlet.http.HttpServletResponse;
332
-
333
-
334
-
335
- import todo.dao.TodoDAO;
336
-
337
- import todo.dto.Todo;
338
-
339
-
340
-
341
- /**
342
-
343
- * 検索機能。タスク一覧を取得し、一覧結果へフォワードする。
344
-
345
- */
346
-
347
- @WebServlet( urlPatterns={"/todo/search"})
348
-
349
- public class SearchServlet extends HttpServlet {
350
-
351
-
352
-
353
- private static final long serialVersionUID = 1L;
354
-
355
-
356
-
357
- protected void doGet(HttpServletRequest request,
358
-
359
- HttpServletResponse response) throws ServletException, IOException {
360
-
361
-
362
-
363
- // 認証情報の取得処理を追加↓
364
-
365
- String userid = request.getRemoteUser();
366
-
367
- request.setAttribute("LoginUserId", userid);
368
-
369
-
370
-
371
- // adminロールを所有するユーザーであるかを判定する
372
-
373
- boolean isAdmin = request.isUserInRole("admin");
374
-
375
- request.setAttribute("isAdmin", isAdmin);
376
-
377
-
378
-
379
- // DAOの取得
380
-
381
- try(TodoDAO dao = new TodoDAO()) {
382
-
383
-
384
-
385
- // タスクのリストを一覧で取得し、リクエスト属性へ格納する
386
-
387
- List<Todo> list = dao.todoList();
388
-
389
-
390
-
391
- request.setAttribute("todoList", list);
392
-
393
-
394
-
395
- } catch (Exception e) {
396
-
397
- throw new ServletException(e);
398
-
399
- }
400
-
401
-
402
-
403
- // 検索一覧を表示する
404
-
405
- RequestDispatcher rd = request.getRequestDispatcher("/search.jsp");
406
-
407
-
408
-
409
- rd.forward(request, response);
410
-
411
-
412
-
413
- }
414
-
415
-
416
-
417
- @Override
418
-
419
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
420
-
421
- throws ServletException, IOException {
422
-
423
-
424
-
425
- doGet(request, response);
426
-
427
-
428
-
429
- }
430
-
431
- }
432
-
433
371
 
434
372
 
435
373
  ```
@@ -520,66 +458,66 @@
520
458
 
521
459
  ```
522
460
 
523
- HTTPステタス 404 - Not Found
524
-
525
-
526
-
527
- メッセージ /10_todo_testfile/j_security_check
528
-
529
-
530
-
531
- 説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
532
-
533
-
534
-
535
- コンソール:エラー画面
536
-
537
- 8 29, 2019 2:59:44 午後 org.apache.catalina.startup.VersionLoggerListener log
538
-
539
- 情報: Server version: Apache Tomcat/8.5.43
540
-
541
- 省略
542
-
543
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:483)
544
-
545
- ... 23 more
546
-
547
-
548
-
549
- 8 29, 2019 2:59:44 午後 org.apache.catalina.core.NamingContextListener addResource
550
-
551
- 警告: naming.jmxRegistrationFailed
552
-
553
- 8 29, 2019 2:59:44 午後 org.apache.naming.NamingContext lookup
554
-
555
- 警告: 参照の解決中に予測しない例外が発生しました
556
-
557
- java.sql.SQLException: Cannot load JDBC driver class 'org.mariadb.jdbc.Driver'
558
-
559
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:489)
560
-
561
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:599)
562
-
563
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1125)
564
-
565
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:554)
566
-
567
- at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.getObjectInstance(BasicDataSourceFactory.java:236)
568
-
569
- at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
570
-
571
- at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
572
-
573
- at org.apache.naming.NamingContext.lookup(NamingContext.java:839)
574
-
575
- at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
576
-
577
- at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:117)
578
-
579
- at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
580
-
581
- at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:34)
582
-
583
- at
584
-
585
- ```
461
+ //Eclipseのコンソル抜粋
462
+
463
+ 9 06, 2019 8:44:17 午前 org.apache.catalina.startup.Catalina start
464
+
465
+ 情報: Server startup in 1415 ms
466
+
467
+ 9 06, 2019 8:44:31 午前 org.apache.catalina.realm.DataSourceRealm open
468
+
469
+ 重大: 認証を実行中の例外です
470
+
471
+ javax.naming.NameNotFoundException: 名前 [jdbc/MariaDB] はこのコンテキストにバインドされていません
472
+
473
+ at org.apache.naming.NamingContext.lookup(NamingContext.java:816)
474
+
475
+ at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
476
+
477
+ at org.apache.catalina.realm.DataSourceRealm.open(DataSourceRealm.java:393)
478
+
479
+ at org.apache.catalina.realm.DataSourceRealm.authenticate(DataSourceRealm.java:263)
480
+
481
+ at org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:195)
482
+
483
+ at org.apache.catalina.realm.LockOutRealm.authenticate(LockOutRealm.java:158)
484
+
485
+ at org.apache.catalina.authenticator.FormAuthenticator.doAuthenticate(FormAuthenticator.java:264)
486
+
487
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:575)
488
+
489
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
490
+
491
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
492
+
493
+ at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
494
+
495
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
496
+
497
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
498
+
499
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
500
+
501
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
502
+
503
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
504
+
505
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
506
+
507
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
508
+
509
+ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
510
+
511
+ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
512
+
513
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
514
+
515
+ at java.lang.Thread.run(Thread.java:748)
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+ ```

4

少し整頓しました

2019/09/05 23:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,20 +1,14 @@
1
1
  参考書 「はじめてのJSP&サーブレット」で勉強しています。
2
2
 
3
- 「chapter10:webアプリケーション開発実践」にきています。
4
-
5
- ちなみに[10章の内容がほぼ同じサイト](http://i-b-c.jp/java/java-10/)があり、同じ著者の
6
-
7
- ものと思われます。
8
-
9
-
10
-
11
3
  windows10,Eclipse 4.6.3,MariaDB,HeidiSQLを使っています。
12
4
 
13
5
 
14
6
 
15
- login.jspでform認証用に作成したログイン画面でログインできません。このjspを追加するまではプロジェクト10_todoは正常に動いておりました。
7
+ login.jspでform認証用に作成したログイン画面でログインできません。
16
-
8
+
9
+
10
+
17
- こまででしたことは、認証レルム設定を行っserver.xmlの変更(2か所),/WEB-INF/web.xmlの変更、login.jspの追加です。
11
+ まででしたことは、認証レルム設定を行っterapadserver.xmlの変更(2か所),/WEB-INF/web.xmlの変更、login.jspの追加です。
18
12
 
19
13
  MariaDB/testデータベースにログインするための、テーブルをauth_roles,auth_usersを作成しています。
20
14
 
@@ -50,25 +44,19 @@
50
44
 
51
45
  SearchServlet.jspを実行するとログイン画面が表示されて、
52
46
 
53
- userid:user01、password:adminと打ち込んでもログインできません。
47
+ userid:user01、password:passwordと打ち込んでもログインできません。
54
48
 
55
49
  すべての./jsp/*,./servlet/*のファイルが同じ症状です。
56
50
 
57
51
 
58
52
 
59
- server.xmlの変更(2か所)が間違っているかもしれませんチェックしていただけませんか。
60
-
61
- 足りない情報があったらお知らせ下さい
62
-
63
-
64
-
65
53
  お願いいたします。
66
54
 
67
55
 
68
56
 
69
57
 
70
58
 
71
- 変更内容は以下です。
59
+
72
60
 
73
61
 
74
62
 
@@ -184,7 +172,7 @@
184
172
 
185
173
  ```
186
174
 
187
- //web.xml
175
+ //WebContent/WEB-INF/web.xml
188
176
 
189
177
  <?xml version="1.0" encoding="UTF-8"?>
190
178
 
@@ -312,226 +300,158 @@
312
300
 
313
301
  ```
314
302
 
303
+
304
+
315
- ```ここに言語を入力
305
+ ```
306
+
316
-
307
+ // SearchServlet.javaを実行して一覧画面を表示する。
308
+
309
+
310
+
311
+ package todo.web;
312
+
313
+
314
+
315
+ import java.io.IOException;
316
+
317
+ import java.util.List;
318
+
319
+
320
+
321
+ import javax.servlet.RequestDispatcher;
322
+
323
+ import javax.servlet.ServletException;
324
+
325
+ import javax.servlet.annotation.WebServlet;
326
+
327
+ import javax.servlet.http.HttpServlet;
328
+
329
+ import javax.servlet.http.HttpServletRequest;
330
+
331
+ import javax.servlet.http.HttpServletResponse;
332
+
333
+
334
+
335
+ import todo.dao.TodoDAO;
336
+
337
+ import todo.dto.Todo;
338
+
339
+
340
+
341
+ /**
342
+
343
+ * 検索機能。タスク一覧を取得し、一覧結果へフォワードする。
344
+
345
+ */
346
+
347
+ @WebServlet( urlPatterns={"/todo/search"})
348
+
349
+ public class SearchServlet extends HttpServlet {
350
+
351
+
352
+
353
+ private static final long serialVersionUID = 1L;
354
+
355
+
356
+
357
+ protected void doGet(HttpServletRequest request,
358
+
359
+ HttpServletResponse response) throws ServletException, IOException {
360
+
361
+
362
+
363
+ // 認証情報の取得処理を追加↓
364
+
365
+ String userid = request.getRemoteUser();
366
+
367
+ request.setAttribute("LoginUserId", userid);
368
+
369
+
370
+
317
- //META-INF/context.xml
371
+ // adminロールを所有するユーザーであるかを判定する
372
+
318
-
373
+ boolean isAdmin = request.isUserInRole("admin");
374
+
375
+ request.setAttribute("isAdmin", isAdmin);
376
+
377
+
378
+
379
+ // DAOの取得
380
+
381
+ try(TodoDAO dao = new TodoDAO()) {
382
+
383
+
384
+
385
+ // タスクのリストを一覧で取得し、リクエスト属性へ格納する
386
+
387
+ List<Todo> list = dao.todoList();
388
+
389
+
390
+
391
+ request.setAttribute("todoList", list);
392
+
393
+
394
+
395
+ } catch (Exception e) {
396
+
397
+ throw new ServletException(e);
398
+
399
+ }
400
+
401
+
402
+
403
+ // 検索一覧を表示する
404
+
405
+ RequestDispatcher rd = request.getRequestDispatcher("/search.jsp");
406
+
407
+
408
+
409
+ rd.forward(request, response);
410
+
411
+
412
+
413
+ }
414
+
415
+
416
+
417
+ @Override
418
+
419
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
420
+
421
+ throws ServletException, IOException {
422
+
423
+
424
+
425
+ doGet(request, response);
426
+
427
+
428
+
429
+ }
430
+
431
+ }
432
+
433
+
434
+
435
+ ```
436
+
437
+ //login.jsp
438
+
439
+
440
+
441
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
442
+
319
- <?xml version="1.0" encoding="UTF-8"?>
443
+ pageEncoding="UTF-8"%>
444
+
445
+ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
446
+
447
+ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
448
+
449
+ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
320
450
 
321
451
 
322
452
 
323
453
  <!DOCTYPE html>
324
454
 
325
-
326
-
327
- <Context allowCasualMultipartParsing="true">
328
-
329
-
330
-
331
- <Resource driverClassName="org.mariadb.jdbc.Driver"
332
-
333
-
334
-
335
- auth="Container"
336
-
337
-
338
-
339
- initialSize="1"
340
-
341
-
342
-
343
- maxIdle="1"
344
-
345
-
346
-
347
- maxWaitMillis="-1"
348
-
349
-
350
-
351
- name="jdbc/MariaDB"
352
-
353
-
354
-
355
- type="javax.sql.DataSource"
356
-
357
-
358
-
359
- url="jdbc:mysql://127.0.0.1:3306/test"
360
-
361
-
362
-
363
- username="root"
364
-
365
-
366
-
367
- password="password"
368
-
369
-
370
-
371
- defaultAutoCommit="false" />
372
-
373
-
374
-
375
- <ResourceLink name="jdbc/authDB" global="jdbc/authDB" type="javax.sql.DataSource" />
376
-
377
-
378
-
379
- </Context>
380
-
381
- ```
382
-
383
-
384
-
385
- ```
386
-
387
- // SearchServlet.javaを実行して一覧画面を表示する。
388
-
389
-
390
-
391
- package todo.web;
392
-
393
-
394
-
395
- import java.io.IOException;
396
-
397
- import java.util.List;
398
-
399
-
400
-
401
- import javax.servlet.RequestDispatcher;
402
-
403
- import javax.servlet.ServletException;
404
-
405
- import javax.servlet.annotation.WebServlet;
406
-
407
- import javax.servlet.http.HttpServlet;
408
-
409
- import javax.servlet.http.HttpServletRequest;
410
-
411
- import javax.servlet.http.HttpServletResponse;
412
-
413
-
414
-
415
- import todo.dao.TodoDAO;
416
-
417
- import todo.dto.Todo;
418
-
419
-
420
-
421
- /**
422
-
423
- * 検索機能。タスク一覧を取得し、一覧結果へフォワードする。
424
-
425
- */
426
-
427
- @WebServlet( urlPatterns={"/todo/search"})
428
-
429
- public class SearchServlet extends HttpServlet {
430
-
431
-
432
-
433
- private static final long serialVersionUID = 1L;
434
-
435
-
436
-
437
- protected void doGet(HttpServletRequest request,
438
-
439
- HttpServletResponse response) throws ServletException, IOException {
440
-
441
-
442
-
443
- // 認証情報の取得処理を追加↓
444
-
445
- String userid = request.getRemoteUser();
446
-
447
- request.setAttribute("LoginUserId", userid);
448
-
449
-
450
-
451
- // adminロールを所有するユーザーであるかを判定する
452
-
453
- boolean isAdmin = request.isUserInRole("admin");
454
-
455
- request.setAttribute("isAdmin", isAdmin);
456
-
457
-
458
-
459
- // DAOの取得
460
-
461
- try(TodoDAO dao = new TodoDAO()) {
462
-
463
-
464
-
465
- // タスクのリストを一覧で取得し、リクエスト属性へ格納する
466
-
467
- List<Todo> list = dao.todoList();
468
-
469
-
470
-
471
- request.setAttribute("todoList", list);
472
-
473
-
474
-
475
- } catch (Exception e) {
476
-
477
- throw new ServletException(e);
478
-
479
- }
480
-
481
-
482
-
483
- // 検索一覧を表示する
484
-
485
- RequestDispatcher rd = request.getRequestDispatcher("/search.jsp");
486
-
487
-
488
-
489
- rd.forward(request, response);
490
-
491
-
492
-
493
- }
494
-
495
-
496
-
497
- @Override
498
-
499
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
500
-
501
- throws ServletException, IOException {
502
-
503
-
504
-
505
- doGet(request, response);
506
-
507
-
508
-
509
- }
510
-
511
- }
512
-
513
-
514
-
515
- ```
516
-
517
- //login.jsp
518
-
519
-
520
-
521
- <%@ page language="java" contentType="text/html; charset=UTF-8"
522
-
523
- pageEncoding="UTF-8"%>
524
-
525
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
526
-
527
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
528
-
529
- <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
530
-
531
-
532
-
533
- <!DOCTYPE html>
534
-
535
455
  <html>
536
456
 
537
457
  <head>

3

変更

2019/09/04 13:01

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -604,12 +604,6 @@
604
604
 
605
605
 
606
606
 
607
-
608
-
609
- Type ステータスレポート
610
-
611
-
612
-
613
607
  メッセージ /10_todo_testfile/j_security_check
614
608
 
615
609
 
@@ -669,17 +663,3 @@
669
663
  at
670
664
 
671
665
  ```
672
-
673
- ### 試したこと
674
-
675
-
676
-
677
- SearchServlet.javaを実行すると
678
-
679
- ログイン画面が出て、ID,passwordを打ち込んでもログインできない
680
-
681
-
682
-
683
-
684
-
685
- ここにより詳細な情報を記載してください。

2

実行するサーブレットの差し替え

2019/08/29 06:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- base.jspを実行するとログイン画面が表示されて、
51
+ SearchServlet.jspを実行するとログイン画面が表示されて、
52
52
 
53
53
  userid:user01、password:adminと打ち込んでもログインできません。
54
54
 
@@ -172,41 +172,11 @@
172
172
 
173
173
  --&gt;
174
174
 
175
-
176
-
177
- <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
178
-
179
-
180
-
181
- <!-- SingleSignOn valve, share authentication between web applications
182
-
183
- Documentation at: /docs/config/valve.html -->
184
-
185
- <!--
186
-
187
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
188
-
189
- -->
190
-
191
-
192
-
193
- <!-- Access log processes all example.
194
-
195
- Documentation at: /docs/config/valve.html
196
-
197
- Note: The pattern used is equivalent to using pattern="common" -->
198
-
199
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
200
-
201
-
202
-
203
- <Context docBase="10_todo_443_452" path="/10_todo_443_452" reloadable="false" source="org.eclipse.jst.jee.server:10_todo_443_452"/><Context docBase="10_todo_426_442" path="/10_todo_426_442" reloadable="false" source="org.eclipse.jst.jee.server:10_todo_426_442"/><Context docBase="10_todo-367-389" path="/10_todo-367-389" reloadable="false" source="org.eclipse.jst.jee.server:10_todo-367-389"/><Context docBase="10_todo-390_399" path="/10_todo-390_399" reloadable="false" source="org.eclipse.jst.jee.server:10_todo-390_399"/><Context docBase="10_todo_416_424" path="/10_todo_416_424" reloadable="false" source="org.eclipse.jst.jee.server:10_todo_416_424"/><Context docBase="10_todo_400_405" path="/10_todo_400_405" reloadable="false" source="org.eclipse.jst.jee.server:10_todo_400_405"/><Context docBase="10_tod0_411_415" path="/10_tod0_411_415" reloadable="false" source="org.eclipse.jst.jee.server:10_tod0_411_415"/><Context docBase="10_tod0_406_410" path="/10_tod0_406_410" reloadable="false" source="org.eclipse.jst.jee.server:10_tod0_406_410"/><Context docBase="10_todo" path="/10_todo" reloadable="false" source="org.eclipse.jst.jee.server:10_todo"/><Context docBase="10_todo_testfile" path="/10_todo_testfile" reloadable="false" source="org.eclipse.jst.jee.server:10_todo_testfile"/></Host>
204
-
205
- </Engine>
206
-
207
- </Service>
208
-
209
- </Server>
175
+          ...中略...
176
+
177
+
178
+
179
+
210
180
 
211
181
  ```
212
182
 
@@ -414,99 +384,211 @@
414
384
 
415
385
  ```
416
386
 
387
+ // SearchServlet.javaを実行して一覧画面を表示する。
388
+
389
+
390
+
391
+ package todo.web;
392
+
393
+
394
+
395
+ import java.io.IOException;
396
+
397
+ import java.util.List;
398
+
399
+
400
+
401
+ import javax.servlet.RequestDispatcher;
402
+
403
+ import javax.servlet.ServletException;
404
+
405
+ import javax.servlet.annotation.WebServlet;
406
+
407
+ import javax.servlet.http.HttpServlet;
408
+
409
+ import javax.servlet.http.HttpServletRequest;
410
+
411
+ import javax.servlet.http.HttpServletResponse;
412
+
413
+
414
+
415
+ import todo.dao.TodoDAO;
416
+
417
+ import todo.dto.Todo;
418
+
419
+
420
+
421
+ /**
422
+
423
+ * 検索機能。タスク一覧を取得し、一覧結果へフォワードする。
424
+
425
+ */
426
+
427
+ @WebServlet( urlPatterns={"/todo/search"})
428
+
429
+ public class SearchServlet extends HttpServlet {
430
+
431
+
432
+
433
+ private static final long serialVersionUID = 1L;
434
+
435
+
436
+
437
+ protected void doGet(HttpServletRequest request,
438
+
439
+ HttpServletResponse response) throws ServletException, IOException {
440
+
441
+
442
+
443
+ // 認証情報の取得処理を追加↓
444
+
445
+ String userid = request.getRemoteUser();
446
+
447
+ request.setAttribute("LoginUserId", userid);
448
+
449
+
450
+
451
+ // adminロールを所有するユーザーであるかを判定する
452
+
453
+ boolean isAdmin = request.isUserInRole("admin");
454
+
455
+ request.setAttribute("isAdmin", isAdmin);
456
+
457
+
458
+
459
+ // DAOの取得
460
+
461
+ try(TodoDAO dao = new TodoDAO()) {
462
+
463
+
464
+
465
+ // タスクのリストを一覧で取得し、リクエスト属性へ格納する
466
+
467
+ List<Todo> list = dao.todoList();
468
+
469
+
470
+
471
+ request.setAttribute("todoList", list);
472
+
473
+
474
+
475
+ } catch (Exception e) {
476
+
477
+ throw new ServletException(e);
478
+
479
+ }
480
+
481
+
482
+
483
+ // 検索一覧を表示する
484
+
485
+ RequestDispatcher rd = request.getRequestDispatcher("/search.jsp");
486
+
487
+
488
+
489
+ rd.forward(request, response);
490
+
491
+
492
+
493
+ }
494
+
495
+
496
+
497
+ @Override
498
+
499
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
500
+
501
+ throws ServletException, IOException {
502
+
503
+
504
+
505
+ doGet(request, response);
506
+
507
+
508
+
509
+ }
510
+
511
+ }
512
+
513
+
514
+
515
+ ```
516
+
417
- // base.jsp
517
+ //login.jsp
518
+
519
+
418
520
 
419
521
  <%@ page language="java" contentType="text/html; charset=UTF-8"
420
522
 
421
523
  pageEncoding="UTF-8"%>
422
524
 
525
+ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
526
+
527
+ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
528
+
529
+ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
530
+
423
531
 
424
532
 
425
533
  <!DOCTYPE html>
426
534
 
427
-
428
-
429
535
  <html>
430
536
 
431
537
  <head>
432
538
 
433
- <meta charset="UTF-8">
539
+ <meta charset="UTF-8">
540
+
434
-
541
+ <meta http-equiv="Pragma" content="no-cache">
542
+
435
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
543
+ <meta http-equiv="Cache-Control" content="no-cache">
436
-
437
-
438
-
439
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
544
+
440
-
441
-
442
-
443
- <style type="text/css">
545
+ <meta http-equiv="Expires" content="0">
444
-
445
- body {
546
+
446
-
447
- padding-top: 60px;
448
-
449
- }
450
-
451
- </style>
452
-
453
-
454
-
455
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
456
-
457
-
458
-
459
- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
460
-
461
-
462
-
463
- <title>基本デザイン</title>
547
+ <title>ログイン画面</title>
464
548
 
465
549
  </head>
466
550
 
467
-
468
-
469
551
  <body>
470
552
 
553
+
554
+
471
- <nav class="navbar navbar-inverse navbar-fixed-top">
555
+ <form method="post" action="${fn:escapeXml('j_security_check')}">
556
+
557
+
558
+
472
-
559
+ <table>
560
+
473
-
561
+ <tr>
474
-
562
+
475
- <div class="container">
563
+ <td>ユーザーID</td>
476
-
477
-
478
-
479
- <div class="navbar-header">
564
+
480
-
481
-
482
-
483
- <a class="navbar-brand" href="#">TODO管理:ここにメニューをおきます</a>
565
+ <td><input type="text" name="j_username"></td>
484
-
566
+
485
- </div>
567
+ </tr>
568
+
569
+
570
+
486
-
571
+ <tr>
572
+
487
-
573
+ <td>パスワード</td>
488
-
574
+
489
- <div id="navbar" class="navbar-collapse collapse"></div>
575
+ <td><input type="password" name="j_password"></td>
490
-
491
-
492
-
493
- <!--/.navbar-collapse -->
576
+
494
-
495
- </div>
577
+ </tr>
578
+
496
-
579
+ </table><br>
580
+
581
+
582
+
497
-
583
+ <input type="submit" value="ログイン" name="submit">
584
+
585
+
586
+
498
-
587
+ <input type="reset" value="リセット" name="reset">
588
+
589
+
590
+
499
- </nav>
591
+ </form>
500
-
501
-
502
-
503
- <div class="container">
504
-
505
- ここはコンテンツ本体を出力します。
506
-
507
- </div>
508
-
509
-
510
592
 
511
593
  </body>
512
594
 
@@ -516,96 +598,6 @@
516
598
 
517
599
 
518
600
 
519
-
520
-
521
-
522
-
523
- ```
524
-
525
- //login.jsp
526
-
527
-
528
-
529
- <%@ page language="java" contentType="text/html; charset=UTF-8"
530
-
531
- pageEncoding="UTF-8"%>
532
-
533
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
534
-
535
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
536
-
537
- <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
538
-
539
-
540
-
541
- <!DOCTYPE html>
542
-
543
- <html>
544
-
545
- <head>
546
-
547
- <meta charset="UTF-8">
548
-
549
- <meta http-equiv="Pragma" content="no-cache">
550
-
551
- <meta http-equiv="Cache-Control" content="no-cache">
552
-
553
- <meta http-equiv="Expires" content="0">
554
-
555
- <title>ログイン画面</title>
556
-
557
- </head>
558
-
559
- <body>
560
-
561
-
562
-
563
- <form method="post" action="${fn:escapeXml('j_security_check')}">
564
-
565
-
566
-
567
- <table>
568
-
569
- <tr>
570
-
571
- <td>ユーザーID</td>
572
-
573
- <td><input type="text" name="j_username"></td>
574
-
575
- </tr>
576
-
577
-
578
-
579
- <tr>
580
-
581
- <td>パスワード</td>
582
-
583
- <td><input type="password" name="j_password"></td>
584
-
585
- </tr>
586
-
587
- </table><br>
588
-
589
-
590
-
591
- <input type="submit" value="ログイン" name="submit">
592
-
593
-
594
-
595
- <input type="reset" value="リセット" name="reset">
596
-
597
-
598
-
599
- </form>
600
-
601
- </body>
602
-
603
- </html>
604
-
605
- ```
606
-
607
-
608
-
609
601
  ```
610
602
 
611
603
  HTTPステータス 404 - Not Found
@@ -626,13 +618,65 @@
626
618
 
627
619
 
628
620
 
621
+ コンソール:エラー画面
622
+
623
+ 8 29, 2019 2:59:44 午後 org.apache.catalina.startup.VersionLoggerListener log
624
+
625
+ 情報: Server version: Apache Tomcat/8.5.43
626
+
627
+ 省略
628
+
629
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:483)
630
+
631
+ ... 23 more
632
+
633
+
634
+
635
+ 8 29, 2019 2:59:44 午後 org.apache.catalina.core.NamingContextListener addResource
636
+
637
+ 警告: naming.jmxRegistrationFailed
638
+
639
+ 8 29, 2019 2:59:44 午後 org.apache.naming.NamingContext lookup
640
+
641
+ 警告: 参照の解決中に予測しない例外が発生しました
642
+
643
+ java.sql.SQLException: Cannot load JDBC driver class 'org.mariadb.jdbc.Driver'
644
+
645
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:489)
646
+
647
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:599)
648
+
649
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1125)
650
+
651
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:554)
652
+
653
+ at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.getObjectInstance(BasicDataSourceFactory.java:236)
654
+
655
+ at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
656
+
657
+ at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
658
+
659
+ at org.apache.naming.NamingContext.lookup(NamingContext.java:839)
660
+
661
+ at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
662
+
663
+ at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:117)
664
+
665
+ at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
666
+
667
+ at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:34)
668
+
669
+ at
670
+
629
671
  ```
630
672
 
631
673
  ### 試したこと
632
674
 
633
675
 
634
676
 
677
+ SearchServlet.javaを実行すると
678
+
635
- web.xmlを追加した部分を外すとログイン画面が出てそのあとID,password入力上のエラーにります。
679
+ ログイン画面が出てID,passwordを打ち込んもログインでき
636
680
 
637
681
 
638
682
 

1

追加

2019/08/29 06:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -604,15 +604,37 @@
604
604
 
605
605
  ```
606
606
 
607
+
608
+
609
+ ```
610
+
611
+ HTTPステータス 404 - Not Found
612
+
613
+
614
+
615
+
616
+
617
+ Type ステータスレポート
618
+
619
+
620
+
621
+ メッセージ /10_todo_testfile/j_security_check
622
+
623
+
624
+
625
+ 説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
626
+
627
+
628
+
629
+ ```
630
+
607
631
  ### 試したこと
608
632
 
609
633
 
610
634
 
611
- ここに問題に対して試したことを記載してください。
612
-
613
-
614
-
615
- ### 補足情報(FW/ツールジョンど)
635
+ web.xmlを追加した部分を外すとログイン画面が出てそあとID,password入力で上のエラります。
636
+
637
+
616
638
 
617
639
 
618
640