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

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

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

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

アノテーション

アノテーションとは、特定のコードに対して、メタデータを注釈として付与することを指します。また、付与したメタデータ自体をアノテーションと呼ぶ場合もあります。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

1317閲覧

HTTPステータス404エラー解消

printaisa

総合スコア0

Java

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

アノテーション

アノテーションとは、特定のコードに対して、メタデータを注釈として付与することを指します。また、付与したメタデータ自体をアノテーションと呼ぶ場合もあります。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/09/06 12:51

編集2021/09/07 00:28

現在、動的webプロジェクト開発を志している者です。
JDBCドライバの読み込みで困っており、設定をいじりすぎて(ビルドパスやファセット等)一旦リセットしようと思い、プロジェクトを再作成したところ、アノテーションと別のurlが読み込まれ、最初のページすら表示されなくなってしまいました。初歩的な質問で申し訳ありませんが、ご回答頂けると嬉しいです。

http://localhost:8080/Noun_Management/WEB-INF/classes/servlet/LoginServlet.java
とブラウザでアクセスされているようですが、本来は
http://localhost:8080/Noun_Management/LoginServlet
であるはずです。

java

1package servlet; 2 3import java.io.IOException; 4 5import dao.IdpwDAO; 6import jakarta.servlet.RequestDispatcher; 7import jakarta.servlet.ServletException; 8import jakarta.servlet.annotation.WebServlet; 9import jakarta.servlet.http.HttpServlet; 10import jakarta.servlet.http.HttpServletRequest; 11import jakarta.servlet.http.HttpServletResponse; 12import jakarta.servlet.http.HttpSession; 13import model.LoginUser; 14import model.Result; 15 16/** 17 * Servlet implementation class LoginServlet 18 */ 19@WebServlet("/LoginServlet") 20public class LoginServlet extends HttpServlet { 21 private static final long serialVersionUID = 1L; 22 23 /** 24 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 25 */ 26 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 27 // ログインページにフォワードする 28 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/login.jsp"); 29 dispatcher.forward(request, response); 30 } 31 32 /** 33 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 34 */ 35 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 36 // リクエストパラメータを取得する 37 request.setCharacterEncoding("UTF-8"); 38 String id = request.getParameter("id"); 39 String pw = request.getParameter("pw"); 40 // ログイン処理を行う 41 IdpwDAO iDao = new IdpwDAO(); 42 if (iDao.isLoginOK(id, pw)) { // ログイン成功 43 // セッションスコープにIDを格納する 44 HttpSession session = request.getSession(); 45 session.setAttribute("id", new LoginUser(id)); 46 47 // メニューサーブレットにリダイレクトする 48 response.sendRedirect("/Noun_Management/MenuServlet"); 49 } 50 else { // ログイン失敗 51 // リクエストスコープに、タイトル、メッセージ、戻り先を格納する 52 request.setAttribute("result", 53 new Result("ログイン失敗!", "idまたはpwに間違いがあります。", "/Noun_Management/LoginServlet")); 54 55 // 結果ページにフォワードする 56 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/result.jsp"); 57 dispatcher.forward(request, response); 58 } 59 } 60}

実行環境
java11
pleiades 2021-03
apache tomcat v9.0

ビルド構成
イメージ説明

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

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

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

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

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

m.ts10806

2021/09/06 12:56

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 あとweb.xmlはどうなってますか? その他設定ファイルで何かしたもの、ライブラリなどあれば適宜ご提示ください。
m.ts10806

2021/09/06 12:57 編集

それに、マッピングしてるならWebで「.java」がつくのはおかしいです。
printaisa

2021/09/06 13:12

コメントありがとうございます! おっしゃる通りで、.javaが付くのはおかしいですね、訂正しました。 また、web.xmlはプロジェクト作成時にチェックを外していたので、web-infに作られていないのですが、その場合どこかで確認できる所がありますか? 何かしたものとしては、jarファイルを追加してlibに入れ、ビルドパスを通したくらいです。
m.ts10806

2021/09/06 20:27 編集

>web-infに作られていないのですが、 WEB-INFですね(大文字小文字も正確にされたほうが良いです) いえ、ないならないで良いです。@WebServletアノテーションがそのかわりになるはずなので。
m.ts10806

2021/09/06 20:29

気になるのが「設定をいじりすぎて」ですが、Tomcatの設定はいじってませんか?なんならサーバーも立て直した方がいい気がします。
printaisa

2021/09/07 00:28

>大文字小文字も正確に そうですね、ありがとうございます! >アクセス可能なのか? 不可能で、404のエラーが出てます >プロジェクトにおいて、ビルドパスを変えたりファセットをいじったりしてたので、プロジェクトごと作り直しました。 サーバーはいじっておらず、他のプロジェクトでは正常にアノテーション通りにアクセスできます。
dodox86

2021/09/07 00:38

手順を確認するためにも、動的Webプロジェクトを作り直した方が早いんじゃないでしょうかね。 作り込むのであれば、途中途中でプロジェクト全体のバックアップは必須です。できるならgitなどのバージョン管理システムを使うことです。
dodox86

2021/09/07 00:53

あ、いや、プロジェクトを再作成したが故のご質問でしたね。読み落としていました。失礼しました。
printaisa

2021/09/07 00:54

いえいえ、ありがとうございます! 1日経っても解決できそうになかったら、もう一度作り直して見ますね
dodox86

2021/09/07 00:58

プロジェクトを再作成したら: 1. 素のプロジェクトで簡単に動作(画面遷移)確認。 2. JDBCだけ組み込んだりして単体で確認。 3. 再作成前のコードを少しずつ適用。動作確認。(一度に全部やらない) とのように進めます。動いている段階で逐次、バックアップします。(すぐ戻れるように)
printaisa

2021/09/07 01:03

確かに、その方が良いかもしれませんね! コード自体はバックアップ取ってるので、その方法で進めようと思います!
printaisa

2021/09/07 05:30

pleiadesごと新しくしたらできました!考えてくださり、ありがとうございました。
dodox86

2021/09/07 05:43

一定の解決に至ったら、対応内容を自己解決としてご自身で回答を投稿し、質問を閉じてください。 (Eclipseを新しくしたら動くようになったとはまぁ、回答として何だかよく分かりませんけれども)
guest

回答1

0

eclipseを新しいバージョンにし、1から設定し直しました。
根本的な原因追求には至らなかったのですが、JDBCドライバの読み込みまでうまくいきました。

前のプロジェクトではビルドパスの所でクラスパスにmysqlのjarを通していたのですが、新しいプロジェクトでは通さずともmysqlを使いDBを操作することができました。

ここらへんの知識が曖昧なので、調べて深めていきたいと思います。
考えてくださった方、ありがとうございました!

投稿2021/09/07 06:22

printaisa

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問