質問編集履歴

3

修正

2021/10/02 02:50

投稿

lvngk
lvngk

スコア0

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- 使用しているのはeclipse,tomcatです。
17
+ 使用しているのはeclipseVersion: 2020-12 (4.18.0),tomcatVersion9.0です。
18
18
 
19
19
 
20
20
 
@@ -27,3 +27,477 @@
27
27
 
28
28
 
29
29
  実現させたいこと:sessionServletプロジェクトをブラウザで閲覧可能にしたい。
30
+
31
+
32
+
33
+ ```ResisterUser
34
+
35
+ package servlet;
36
+
37
+
38
+
39
+ import java.io.IOException;
40
+
41
+
42
+
43
+ import javax.servlet.RequestDispatcher;
44
+
45
+ import javax.servlet.ServletException;
46
+
47
+ import javax.servlet.annotation.WebServlet;
48
+
49
+ import javax.servlet.http.HttpServlet;
50
+
51
+ import javax.servlet.http.HttpServletRequest;
52
+
53
+ import javax.servlet.http.HttpServletResponse;
54
+
55
+ import javax.servlet.http.HttpSession;
56
+
57
+
58
+
59
+ import example.ResisterUserLogic;
60
+
61
+ import example.User;
62
+
63
+
64
+
65
+ /**
66
+
67
+ * Servlet implementation class ResisterUser
68
+
69
+ */
70
+
71
+ @WebServlet("/ResisterUser")
72
+
73
+ public class ResisterUser extends HttpServlet {
74
+
75
+ private static final long serialVersionUID = 1L;
76
+
77
+
78
+
79
+ /**
80
+
81
+ * @see HttpServlet#HttpServlet()
82
+
83
+ */
84
+
85
+ public ResisterUser() {
86
+
87
+ super();
88
+
89
+ // TODO Auto-generated constructor stub
90
+
91
+ }
92
+
93
+
94
+
95
+ /**
96
+
97
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
98
+
99
+ */
100
+
101
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
102
+
103
+ // フォワード先
104
+
105
+
106
+
107
+ String fowardPath = null;
108
+
109
+
110
+
111
+ //サーブレットクラスの動作を決定する「action」の値をリクエストパラメータから取得
112
+
113
+
114
+
115
+ String action = request.getParameter("action");
116
+
117
+
118
+
119
+ //「登録開始」のリクエストをされた時の処理
120
+
121
+ if(action == null) {
122
+
123
+
124
+
125
+ //フォワード先を設定
126
+
127
+
128
+
129
+ fowardPath = "/WEB-INF/jsp/registerForm.jsp";
130
+
131
+
132
+
133
+ }
134
+
135
+ //登録確認画面から「登録実行」をリクエストされた時の処理
136
+
137
+
138
+
139
+ else if(action.equals("done")) {
140
+
141
+
142
+
143
+ //セッションスコープに保存された登録ユーザーを取得
144
+
145
+
146
+
147
+ HttpSession session = request.getSession();
148
+
149
+
150
+
151
+ User registerUser = (User)session.getAttribute("registerUser");
152
+
153
+
154
+
155
+ //登録処理の呼び出し
156
+
157
+
158
+
159
+ ResisterUserLogic logic = new ResisterUserLogic();
160
+
161
+
162
+
163
+ logic.execute(registerUser);
164
+
165
+
166
+
167
+ // 不要となったセッションスコープ内のインスタンスを削除
168
+
169
+
170
+
171
+ session.removeAttribute("registerUser");
172
+
173
+
174
+
175
+ fowardPath = "/WEB-INF/jsp/registerDone.jsp";
176
+
177
+
178
+
179
+ }
180
+
181
+
182
+
183
+ // 設定されたフォワード先にフォワード
184
+
185
+
186
+
187
+ RequestDispatcher dispatcher = request.getRequestDispatcher(fowardPath);
188
+
189
+
190
+
191
+ dispatcher.forward(request, response);
192
+
193
+
194
+
195
+ }
196
+
197
+
198
+
199
+ /**
200
+
201
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
202
+
203
+ */
204
+
205
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
206
+
207
+
208
+
209
+ // リクエストパラメータの取得
210
+
211
+
212
+
213
+ request.setCharacterEncoding("UTF-8");
214
+
215
+
216
+
217
+ String id = request.getParameter("id");
218
+
219
+
220
+
221
+ String name = request.getParameter("name");
222
+
223
+
224
+
225
+ String pass = request.getParameter("pass");
226
+
227
+
228
+
229
+ // 登録するユーザーの情報を設定
230
+
231
+
232
+
233
+ User registerUser = new User(id,name,pass);
234
+
235
+
236
+
237
+ // セッションスコープに登録ユーザーを保存
238
+
239
+
240
+
241
+ HttpSession session = request.getSession();
242
+
243
+
244
+
245
+ session.setAttribute("registerUser", registerUser);
246
+
247
+
248
+
249
+ // フォワード
250
+
251
+
252
+
253
+ RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/registerConfirm.jsp");
254
+
255
+
256
+
257
+ dispatcher.forward(request, response);
258
+
259
+
260
+
261
+ }
262
+
263
+
264
+
265
+ }
266
+
267
+
268
+
269
+ ```
270
+
271
+
272
+
273
+ ```registerForm
274
+
275
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
276
+
277
+ pageEncoding="UTF-8"%>
278
+
279
+ <!DOCTYPE html>
280
+
281
+ <html>
282
+
283
+ <head>
284
+
285
+ <meta charset="UTF-8">
286
+
287
+ <title>ユーザー登録</title>
288
+
289
+ </head>
290
+
291
+ <body>
292
+
293
+ <form action="/servlet/ResisterUser" method = "post">
294
+
295
+ ログインID:<input type="text" name="id"><br>
296
+
297
+ パスワード:<input type="password" name="pass"><br>
298
+
299
+ 名前:<input type="text" name="name"><br>
300
+
301
+ <input type="submit" value="確認">
302
+
303
+ </form>
304
+
305
+
306
+
307
+ </body>
308
+
309
+ </html>
310
+
311
+ ```
312
+
313
+
314
+
315
+ ```registerConfirm
316
+
317
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
318
+
319
+ pageEncoding="UTF-8"%>
320
+
321
+ <%@ page import="example.User" %>
322
+
323
+
324
+
325
+ <%
326
+
327
+ User registerUser = (User)session.getAttribute("registerUser");
328
+
329
+ %>
330
+
331
+
332
+
333
+ <!DOCTYPE html>
334
+
335
+ <html>
336
+
337
+ <head>
338
+
339
+ <meta charset="UTF-8">
340
+
341
+ <title>ユーザー登録</title>
342
+
343
+ </head>
344
+
345
+ <body>
346
+
347
+ <p>下記のユーザーを登録します</p>
348
+
349
+ <p>
350
+
351
+ ログインID:<%= registerUser.getId() %><br>
352
+
353
+ 名前:<%= registerUser.getName() %><br>
354
+
355
+ </p>
356
+
357
+ <a href="/servlet/ResisterUser">戻る</a>
358
+
359
+ <a href="/servlet/ResisterUser?action=done">登録</a>
360
+
361
+ </body>
362
+
363
+ </html>
364
+
365
+ ```
366
+
367
+ ```registerDone
368
+
369
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
370
+
371
+ pageEncoding="UTF-8"%>
372
+
373
+ <!DOCTYPE html>
374
+
375
+ <html>
376
+
377
+ <head>
378
+
379
+ <meta charset="UTF-8">
380
+
381
+ <title>ユーザー登録</title>
382
+
383
+ </head>
384
+
385
+ <body>
386
+
387
+ <p>登録完了しました</p>
388
+
389
+ <a href="/servlet/ResisterUser">戻る</a>
390
+
391
+ </body>
392
+
393
+ </html>
394
+
395
+ ```
396
+
397
+ ```ResisterUserLogic
398
+
399
+ package example;
400
+
401
+
402
+
403
+ public class ResisterUserLogic {
404
+
405
+
406
+
407
+ public boolean execute(User user) {
408
+
409
+
410
+
411
+ // 登録処理、サンプルでは行わない
412
+
413
+
414
+
415
+ return true;
416
+
417
+
418
+
419
+ }
420
+
421
+
422
+
423
+ }
424
+
425
+
426
+
427
+ ```
428
+
429
+ ```User
430
+
431
+ package example;
432
+
433
+ import java.io.Serializable;
434
+
435
+
436
+
437
+ public class User implements Serializable{
438
+
439
+
440
+
441
+ private String id;
442
+
443
+ private String name;
444
+
445
+ private String pass;
446
+
447
+
448
+
449
+ public User() {
450
+
451
+
452
+
453
+ }
454
+
455
+
456
+
457
+ public User(String id, String name, String pass) {
458
+
459
+
460
+
461
+ this.id = id;
462
+
463
+ this.name = name;
464
+
465
+ this.pass = pass;
466
+
467
+
468
+
469
+ }
470
+
471
+
472
+
473
+ public String getId() {return id;}
474
+
475
+ public String getName() {return name;}
476
+
477
+ public String getPass() {return pass;}
478
+
479
+
480
+
481
+ }
482
+
483
+
484
+
485
+ ```
486
+
487
+
488
+
489
+ ```
490
+
491
+ server.xml
492
+
493
+
494
+
495
+ デフォルト設定
496
+
497
+
498
+
499
+ <Context docBase="example" path="/example" reloadable="true" source="org.eclipse.jst.jee.server:example"/><Context docBase="sessionServlet" path="/sessionServlet" reloadable="true" source="org.eclipse.jst.jee.server:sessionServlet"/></Host>
500
+
501
+
502
+
503
+ ```

2

修正

2021/10/02 02:50

投稿

lvngk
lvngk

スコア0

test CHANGED
File without changes
test CHANGED
@@ -14,4 +14,16 @@
14
14
 
15
15
 
16
16
 
17
- 使用しているのはeclipse,tomcatです
17
+ 使用しているのはeclipse,tomcatです
18
+
19
+
20
+
21
+ 問題点:二つ目に追加したsessionServletだけ404エラーになってしまう。
22
+
23
+
24
+
25
+ 確認したこと:サーバーへの追加、サーバーの再起動、サーバーのserver.xmlのコンテキストの確認
26
+
27
+
28
+
29
+ 実現させたいこと:sessionServletプロジェクトをブラウザで閲覧可能にしたい。

1

修正

2021/10/01 13:39

投稿

lvngk
lvngk

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 現在、sessionの勉強をしています。
1
+ 現在、サーブレットのsessionの勉強をしています。
2
2
 
3
3
  形だけのユーザー登録のコードを書き、sessionServletという名前を付け、サーバーに追加しました。
4
4
 
@@ -11,3 +11,7 @@
11
11
  プロジェクトの追加、サーバーの再起動は正確に行っていると思っています。
12
12
 
13
13
  原因が分からなく、解決方法が載っているサイトを見つけることができなかったため、質問を投稿させていただきました。ご教授いただければ幸いです。
14
+
15
+
16
+
17
+ 使用しているのはeclipse,tomcatです