質問編集履歴

1

質問が分かりにくくすぎたので内容を修正しました。

2021/03/30 11:16

投稿

ggakusei
ggakusei

スコア0

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,17 @@
10
10
 
11
11
  ### 発生している問題・エラーメッセージ
12
12
 
13
- 目立ったエラーメッセージは無いのですが、上手くログインできません
13
+ eclips上で目立ったエラーメッセージは無いのですが、上手くログイン処理ができていない状態です
14
+
15
+ 具体的には、TopPage.jspを表示するところまではできています。そこからデータベースにあらかじめ登録しておいた情報を入力してもResult.jspには移動せず、TopPage.jspのままになります。URLはtoppageからLoginServletに変わっています。eclipsのコンソールを見ましたが異常はなかったと思います。
16
+
17
+ <トップページ>
18
+
19
+ ![イメージ説明](d3150979d79115964a01076c0d5ed757.png)
20
+
21
+ <情報入力後>
22
+
23
+ ![イメージ説明](a02987685d0542809499edc04cd25617.png)
14
24
 
15
25
 
16
26
 
@@ -18,19 +28,441 @@
18
28
 
19
29
  ### 該当のソースコード
20
30
 
21
- ![イメージ説明](46fdc3e8701e6cb9fa3b75c128871165.png)
22
-
23
- ![イメージ説明](a9875ff70c0190e576cbc40f708f8012.png)
24
-
25
- ![イメージ説明](84d7a388c9d31dfa38bd40587ecf9af1.png)
26
-
27
- ![![イメージ説明](10287da07516cbdc9b6b871aeef899dd.png)](0ba1851514e0c6338ca9cc371da352b5.png)
28
-
29
- ![イメージ説明](adf889d3dfd13f9746a6f409e75dfbc6.png)
30
-
31
- ![イメージ説明](a25a7113e83f433dd7097bce0989bfdc.png)
32
-
33
-
31
+ ```java
32
+
33
+ package model;
34
+
35
+
36
+
37
+ public class LoginBean {
38
+
39
+
40
+
41
+ private int id;
42
+
43
+ private String name;
44
+
45
+ private String password;
46
+
47
+
48
+
49
+ public int getId() {
50
+
51
+ return id;
52
+
53
+ }
54
+
55
+ public void setId(int id) {
56
+
57
+ this.id = id;
58
+
59
+ }
60
+
61
+ public String getName() {
62
+
63
+ return name;
64
+
65
+ }
66
+
67
+ public void setName(String name) {
68
+
69
+ this.name = name;
70
+
71
+ }
72
+
73
+ public String getPassword() {
74
+
75
+ return password;
76
+
77
+ }
78
+
79
+ public void setPassword(String password) {
80
+
81
+ this.password = password;
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ```
88
+
89
+ ```java
90
+
91
+ package model;
92
+
93
+
94
+
95
+ import java.sql.Connection;
96
+
97
+ import java.sql.DriverManager;
98
+
99
+ import java.sql.PreparedStatement;
100
+
101
+ import java.sql.ResultSet;
102
+
103
+ import java.sql.SQLException;
104
+
105
+
106
+
107
+ public class LoginDBdao {
108
+
109
+ private Connection con = null;
110
+
111
+ private ResultSet rs = null;
112
+
113
+ private PreparedStatement ps = null;
114
+
115
+
116
+
117
+ private String url = "jdbc:mysql://localhost:3306/loginmaster?characterEncoding=UTF-8&serverTimezone=JST&autoReconnect=true&useSSL=false";
118
+
119
+ private String user = "user";
120
+
121
+ private String pass = "password";
122
+
123
+
124
+
125
+ public LoginBean select() throws SQLException {
126
+
127
+ LoginBean bean = new LoginBean();
128
+
129
+
130
+
131
+ try {
132
+
133
+ //JDBCドライバ
134
+
135
+ Class.forName("com.mysql.jdbc.Driver");
136
+
137
+
138
+
139
+ //DB接続
140
+
141
+ con = DriverManager.getConnection(url, user, pass);
142
+
143
+
144
+
145
+ //SQL文
146
+
147
+ ps = con.prepareStatement("select * from loginmaster");
148
+
149
+
150
+
151
+ //SQL文の実行
152
+
153
+ rs = ps.executeQuery();
154
+
155
+
156
+
157
+ if (!rs.next()) {
158
+
159
+ return null;
160
+
161
+ }
162
+
163
+
164
+
165
+ bean.setName(rs.getString("name"));
166
+
167
+ bean.setPassword(rs.getString("password"));
168
+
169
+
170
+
171
+ } catch (ClassNotFoundException e) {
172
+
173
+ // TODO 自動生成された catch ブロック
174
+
175
+ e.printStackTrace();
176
+
177
+ }
178
+
179
+ return bean;
180
+
181
+ }
182
+
183
+
184
+
185
+ //DB切断
186
+
187
+ public void close() {
188
+
189
+ try {
190
+
191
+ if (con != null) {
192
+
193
+ con.close();
194
+
195
+ }
196
+
197
+ if (ps != null) {
198
+
199
+ ps.close();
200
+
201
+ }
202
+
203
+ if (rs != null) {
204
+
205
+ rs.close();
206
+
207
+ }
208
+
209
+ } catch (SQLException e) {
210
+
211
+ e.printStackTrace();
212
+
213
+ }
214
+
215
+ }}
216
+
217
+
218
+
219
+ ```
220
+
221
+ ```java
222
+
223
+ package controller;
224
+
225
+
226
+
227
+ import java.io.IOException;
228
+
229
+
230
+
231
+ import javax.servlet.RequestDispatcher;
232
+
233
+ import javax.servlet.ServletException;
234
+
235
+ import javax.servlet.annotation.WebServlet;
236
+
237
+ import javax.servlet.http.HttpServlet;
238
+
239
+ import javax.servlet.http.HttpServletRequest;
240
+
241
+ import javax.servlet.http.HttpServletResponse;
242
+
243
+
244
+
245
+ @WebServlet("/toppage")
246
+
247
+ public class TopPageServlet extends HttpServlet {
248
+
249
+ private static final long serialVersionUID = 1L;
250
+
251
+
252
+
253
+
254
+
255
+ public TopPageServlet() {
256
+
257
+ super();
258
+
259
+ }
260
+
261
+
262
+
263
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
264
+
265
+ RequestDispatcher rd = request.getRequestDispatcher("/view/TopPage.jsp");
266
+
267
+ rd.forward(request, response);
268
+
269
+ }
270
+
271
+
272
+
273
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
274
+
275
+ // TODO Auto-generated method stub
276
+
277
+ doGet(request, response);
278
+
279
+ }
280
+
281
+
282
+
283
+ }
284
+
285
+ ```
286
+
287
+ ```java
288
+
289
+ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
290
+
291
+ <!DOCTYPE html>
292
+
293
+ <html lang="ja">
294
+
295
+ <head>
296
+
297
+ <meta charset="UTF-8">
298
+
299
+ <title>ログイン</title>
300
+
301
+ </head>
302
+
303
+
304
+
305
+ <body>
306
+
307
+ <h1>ログイン</h1>
308
+
309
+ <form action="LoginServlet" method="post">
310
+
311
+ <label>名前</label><br>
312
+
313
+ <input type="text" name="name"><br>
314
+
315
+
316
+
317
+ <label>パスワード</label><br>
318
+
319
+ <input type="text" name="password"><br>
320
+
321
+
322
+
323
+ <input type="submit" value="送信する">
324
+
325
+
326
+
327
+ </form>
328
+
329
+ </body>
330
+
331
+ </html>
332
+
333
+ ```
334
+
335
+ ```java
336
+
337
+ package controller;
338
+
339
+
340
+
341
+ import java.io.IOException;
342
+
343
+ import java.sql.SQLException;
344
+
345
+
346
+
347
+ import javax.servlet.ServletException;
348
+
349
+ import javax.servlet.annotation.WebServlet;
350
+
351
+ import javax.servlet.http.HttpServlet;
352
+
353
+ import javax.servlet.http.HttpServletRequest;
354
+
355
+ import javax.servlet.http.HttpServletResponse;
356
+
357
+ import javax.servlet.http.HttpSession;
358
+
359
+
360
+
361
+ import model.LoginBean;
362
+
363
+ import model.LoginDBdao;
364
+
365
+
366
+
367
+ @WebServlet("/LoginServlet")
368
+
369
+ public class LoginServlet extends HttpServlet {
370
+
371
+ private static final long serialVersionUID = 1L;
372
+
373
+
374
+
375
+ public LoginServlet() {
376
+
377
+ super();
378
+
379
+ }
380
+
381
+
382
+
383
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
384
+
385
+ String name = request.getParameter("name");
386
+
387
+ String password = request.getParameter("password");
388
+
389
+
390
+
391
+ LoginDBdao dao = new LoginDBdao();
392
+
393
+ LoginBean bean = null;
394
+
395
+ try {
396
+
397
+ bean = dao.select();
398
+
399
+ } catch (SQLException e) {
400
+
401
+ // TODO 自動生成された catch ブロック
402
+
403
+ e.printStackTrace();
404
+
405
+ }
406
+
407
+
408
+
409
+
410
+
411
+ boolean Login = (bean != null && name.equals(bean.getName()) && password.equals(bean.getPassword()));
412
+
413
+ HttpSession session = request.getSession();
414
+
415
+ session.setAttribute("Login", Login);
416
+
417
+
418
+
419
+ if(Login){
420
+
421
+ request.getRequestDispatcher("/view/Result.jsp").forward(request, response);
422
+
423
+ }else{
424
+
425
+ request.getRequestDispatcher("/view/TopPage.jsp").forward(request, response);
426
+
427
+ }
428
+
429
+ }
430
+
431
+
432
+
433
+ }
434
+
435
+
436
+
437
+ ```
438
+
439
+ ```java
440
+
441
+ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
442
+
443
+ <!DOCTYPE html>
444
+
445
+ <html lang="ja">
446
+
447
+ <head>
448
+
449
+ <meta charset="UTF-8">
450
+
451
+ <title>Insert title here</title>
452
+
453
+ </head>
454
+
455
+ <body>
456
+
457
+ <h1>ようこそ</h1>
458
+
459
+
460
+
461
+ </body>
462
+
463
+ </html>
464
+
465
+ ```
34
466
 
35
467
  ### 試したこと
36
468
 
@@ -49,3 +481,9 @@
49
481
  Java EEを使用しています。
50
482
 
51
483
  データベースはMySQLです。
484
+
485
+
486
+
487
+ 追記
488
+
489
+ 質問についての改善のご指摘ありがとうございます。質問すらまともにできておらずすみませんでした。また、至らない点があればご指摘よろしくお願いします。