質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

2回答

7337閲覧

Javaでログイン機能の実装ができないのでご教授お願い致します。

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/08/13 08:42

編集2018/08/13 08:43

エラーが更新されたため再度立て直しました。
Java,MySQLを用いてログイン画面の実装をしようとしています。(のちにajax実装予定)

DBにサンプルデータを入れてログインが正常に行われるか試している段階ですが、
エラーの原因がわからず時間を食ってしまっているので質問するに至りました。

説明の不足点があれば申し訳ございませんが言っていただければ随時追記いたします。

環境:
Windows10,
jdk1.8.0_181,
EclipsePhoton(最新),
tomcat7.0,

ログインボタンを押すとこのようなエラーが出てしまいます。これの原因がわかりません。

Error

1Type ステータスレポート 2 3メッセージ /project/UserLoginServlet 4 5説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. 6

また、UserLoginServletを手動コンパイルしようとすると

Command

1C:\Users\ユーザ名\workspase\projectcom\src\projectpackage>javac -encoding utf-8 -classpath "C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar" UserLoginServlet.java 2UserLoginServlet.java:38: エラー: シンボルを見つけられません 3 Dao dao = new Dao(); 4 ^ 5 シンボル: クラス Dao 6 場所: クラス UserLoginServlet 7UserLoginServlet.java:38: エラー: シンボルを見つけられません 8 Dao dao = new Dao(); 9 ^ 10 シンボル: クラス Dao 11 場所: クラス UserLoginServlet 12UserLoginServlet.java:39: エラー: シンボルを見つけられません 13 Dto user = dao.findUser(id); 14 ^ 15 シンボル: クラス Dto 16 場所: クラス UserLoginServlet 17エラー3個

となります。

以下各ファイルです。

loginJSP

1<form action="./UserLoginServlet" method="post"> 2 <div class="form-group inputs"> 3 <table> 4 <tbody> 5 <tr><td><input name="id" class="form-control" type="text" id="id" placeholder="username"></td></tr> 6 7 <tr><td><input type="password" name="password"class="form-control" id="password" placeholder="password"></td></tr> 8 9 <tr><td><button type="submit" class="btn btn-primary" onclick="loginajax"><font color="#FFFFFF">ログイン</font></button></td></tr> 10 </tbody> 11 </table> 12 </div> 13 </form>

UserLoginServlet

1package projectpackage; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.annotation.WebServlet; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10import javax.servlet.http.HttpSession; 11 12 13@WebServlet("/UserLoginServlet") 14public class UserLoginServlet extends HttpServlet{ 15 private static final long serialVersionUID = 1L; 16 17 /** 18 * @see HttpServlet#HttpServlet() 19 */ 20 public UserLoginServlet() { 21 super(); 22 } 23 24 /** 25 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 26 */ 27 @Override 28 public void doPost(HttpServletRequest request, HttpServletResponse response) 29 throws ServletException, IOException { 30 request.setCharacterEncoding("UTF-8"); 31 32 33 34 35 String id = request.getParameter("id"); 36 String password = request.getParameter("password"); 37 38 Dao dao = new Dao(); 39 Dto user = dao.findUser(id); 40 41 42 43 boolean isLogin = (user != null && password.equals(user.getPassword())); 44 HttpSession session = request.getSession(); 45 session.setAttribute("isLogin", isLogin); 46 47 48 if (isLogin) { 49 request.setAttribute("username", user.getid()); 50 request.getRequestDispatcher("/top.jsp").forward(request, response); 51 } else { 52 request.setAttribute("error", "IDかパスワードが間違っています。\n再入力してください。"); 53 request.getRequestDispatcher("/login.jsp").forward(request, response); 54 } 55 56 57 } 58 59 60}

Dao

1package projectpackage; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.sql.Statement; 8 9public class Dao { 10 11 private static Connection getConnection() { 12 13 String url = "jdbc:mysql://localhost/userdb?" + "serverTimezone=JST"; 14 String user = "root"; 15 String password = "root"; 16 17 try { 18 19 Class.forName("com.mysql.jdbc.Driver"); 20 return DriverManager.getConnection(url, user, password); 21 22 } catch (Exception e) { 23 throw new IllegalArgumentException(e); 24 } 25 } 26 27 static Connection connection = null; 28 29 30 public Dto findUser(String id) { 31 Dto user = new Dto(); 32 33 try { 34 connection = getConnection(); 35 36 37 Statement statement = connection.createStatement(); 38 String sql="select * from userinf where id="+id; 39 40 ResultSet resultSet = statement.executeQuery(sql); 41 42 while (resultSet.next()) { 43 44 user.setid(resultSet.getString("id")); 45 user.setPassword(resultSet.getString("password")); 46 47 } 48 49 } catch (SQLException e) { 50 e.printStackTrace(); 51 } 52 return user; 53 54 } 55

Dto

1package projectpackage; 2 3 4public class Dto{ 5 private String id; 6 private String password; 7 8 public String getid() { 9 return id; 10 } 11 public String getPassword() { 12 return password; 13 } 14 15 public void setid(String id) { 16 this.id = id; 17 } 18 public void setPassword(String password) { 19 this.password = password; 20 } 21 22} 23

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

回答されてる方がいないので...

原因 : UserLoginServletクラスでDaoクラスがインポートされていないからだと思われます。
解決策 : UserLoginServletクラスにimport Dao;を追加。

多分これでそちらのエラーは解消されると思います。

偉そうに感じるかもしれませんがアドバイスとして、、、
これからは、エラーが出たらエラーメッセージを読んで「Java エラー エラーメッセージ」のような形でググると大抵の場合原因と解決法があると思います。
今回の場合は、単純なエラーなので[ Java エラー シンボルが見つけられません ] で検索すればたくさん原因と解決法が出てきますよ。

【追記】
以下のコメントを読ませて頂いて
>>「エラーが、どこで出ているか、なぜでているか、かがわからない」ため曖昧な質問になってしまったことをお許し下さい。

質問者がどのくらいのレベルなのかがわからないのですが、これが質問のコードがコピペでnew演算子やインスタンスなどの概念から理解できてないようでしたら
スッキリわかるJava入門 第2版 (スッキリシリーズ)
こちらの書籍を購入して一通りJavaの基礎とオブジェクト指向についてちゃんと理解してから

スッキリわかる サーブレット&JSP入門 (スッキリシリーズ)
もう一度こちらの書籍でサーブレットとJSPについて理解する方がいいかと思われます

個人差はあると思いますが、私はこの2冊でJavaの基本からサーブレットとJSPまでを理解することができたので参考までに紹介します。

投稿2018/08/14 16:42

編集2018/08/14 17:08
reishisu

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/18 02:38

すみません。いま手元にファイルがないのですが、前に試しました。DaoクラスがimportされていませんでしたのでDaoクラスをimportしようとしたところDaoクラスが見つかりませんと出ました。 書籍の紹介ありがとうございます。順々に勉強しなきゃいけないと思い、スッキリわかるJava入門を購入しました。
reishisu

2018/08/18 14:35 編集

そうでしたか、、、では「import projectpackage.*;」は試されました??
guest

0

ただいま書籍で勉強しなおしており、全ファイル作り直しています。記事の編集までもうすこしお待ちください

投稿2018/08/13 18:00

編集2018/08/18 02:39
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/13 22:42

エラー原因がわかる書籍ってないかと。 自身で組んだコードなのであれば自身が一番よく分かっているはず。 エラーメッセージの意味が分からないのか、意味が分かっていて原因が分からないのか。 「わかっている範囲とわかっていない範囲」を明確にしてください。 https://teratail.com/help/question-tips#questionTips2-1
退会済みユーザー

退会済みユーザー

2018/08/14 02:47

申し訳ございません。まだ質問の仕方が下手ですね。 エラーメッセージの原因がわからず質問させていただきました。 書籍に関してはエラー原因の解明というよりはJSPの基本からDB接続まで体系的に学びたいと思い購入しました。その中でエラーの原因がわかるはず、と考えました。 質問については次回からヒントを見て、気をつけます。ありがとうございました。
m.ts10806

2018/08/14 03:59

どこが「解決済み」なんでしょうか? 質問も回答も投稿者が編集できます。 きちんと具体的に解決策を書いてください。 あとで同じような問題を抱えた人が読んだときに「書籍を購入しました」だけで「解決済み」となっているとどう思うでしょう? まさに今のあなたのような人が読んだときです。 何の書籍を買ったかもわからない、どう見ても解決してない 「放棄」と同じと感じませんか? あくまでコードは自分の書いたものとして責任をもって解決させてください。 この質問のコードがどこから出てきたものか分かりませんが、そのコードで出た問題はそのコード上で解決するしかありません。 何か問題が出る度にそのコードとは向き合わず書籍を見るのですか? 問題は目の前で起きています。質問者には自身の問題と課題をきちんと解決まで導く責任があります。 利用者や見ている人の多いJavaにも関わらず回答も何も反応がないのにはそれなりに理由があります。 今の質問者さんのようなやり方をしているとそのうち誰も回答しなくなりますよ。 質問の仕方だけの問題ではありません。
退会済みユーザー

退会済みユーザー

2018/08/14 04:12

はい、後に検索した方のためにも解決方法は引き続き編集したいと思っております。 書籍については原因解明のための手だてを探すために見ています。 「そもそもエラーの解決方法がわからない」のではなくて、「エラーが、どこで出ているか、なぜでているか、かがわからない」ため曖昧な質問になってしまったことをお許し下さい。 解決済み、に関しては軽率な行動でした。 「エラーの内容、具体的な質問」について自分の中で整理する間コメントの対応が遅れてしまうので、この質問をどうすればよいのかわからず解決済みにしてしまいした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問