質問編集履歴
5
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,15 +42,23 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
|
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
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
at org.apache.
|
544
|
-
|
545
|
-
...
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
at org.apache.
|
560
|
-
|
561
|
-
at org.apache.
|
562
|
-
|
563
|
-
at org.apache.
|
564
|
-
|
565
|
-
at org.apache.
|
566
|
-
|
567
|
-
at org.apache.tomcat.
|
568
|
-
|
569
|
-
at org.apache.
|
570
|
-
|
571
|
-
at java
|
572
|
-
|
573
|
-
at
|
574
|
-
|
575
|
-
at org.apache.
|
576
|
-
|
577
|
-
at
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
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
少し整頓しました
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認証用に作成したログイン画面でログインできません。
|
7
|
+
login.jspでform認証用に作成したログイン画面でログインできません。
|
16
|
-
|
8
|
+
|
9
|
+
|
10
|
+
|
17
|
-
|
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:ad
|
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
|
-
//
|
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
|
-
|
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
変更
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
実行するサーブレットの差し替え
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
|
51
|
+
SearchServlet.jspを実行するとログイン画面が表示されて、
|
52
52
|
|
53
53
|
userid:user01、password:adminと打ち込んでもログインできません。
|
54
54
|
|
@@ -172,41 +172,11 @@
|
|
172
172
|
|
173
173
|
-->
|
174
174
|
|
175
|
-
|
176
|
-
|
177
|
-
|
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 "%r" %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
|
-
//
|
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="Cont
|
543
|
+
<meta http-equiv="Cache-Control" content="no-cache">
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
544
|
+
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
<
|
545
|
+
<meta http-equiv="Expires" content="0">
|
444
|
-
|
445
|
-
|
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>
|
547
|
+
<title>ログイン画面</title>
|
464
548
|
|
465
549
|
</head>
|
466
550
|
|
467
|
-
|
468
|
-
|
469
551
|
<body>
|
470
552
|
|
553
|
+
|
554
|
+
|
471
|
-
<
|
555
|
+
<form method="post" action="${fn:escapeXml('j_security_check')}">
|
556
|
+
|
557
|
+
|
558
|
+
|
472
|
-
|
559
|
+
<table>
|
560
|
+
|
473
|
-
|
561
|
+
<tr>
|
474
|
-
|
562
|
+
|
475
|
-
<d
|
563
|
+
<td>ユーザーID</td>
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
564
|
+
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
565
|
+
<td><input type="text" name="j_username"></td>
|
484
|
-
|
566
|
+
|
485
|
-
|
567
|
+
</tr>
|
568
|
+
|
569
|
+
|
570
|
+
|
486
|
-
|
571
|
+
<tr>
|
572
|
+
|
487
|
-
|
573
|
+
<td>パスワード</td>
|
488
|
-
|
574
|
+
|
489
|
-
|
575
|
+
<td><input type="password" name="j_password"></td>
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
576
|
+
|
494
|
-
|
495
|
-
</
|
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
|
-
|
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
|
-
|
679
|
+
ログイン画面が出て、ID,passwordを打ち込んでもログインできない
|
636
680
|
|
637
681
|
|
638
682
|
|
1
追加
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
|
-
|
635
|
+
web.xmlを追加した部分を外すとログイン画面が出てそのあとID,password入力で上のエラーになります。
|
636
|
+
|
637
|
+
|
616
638
|
|
617
639
|
|
618
640
|
|