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

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

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

Q&A

解決済

1回答

927閲覧

サーブレットをtomcatで実行すると、ブラウザで[HTTPステータス 404 – 見つかりません。]と表示される。

退会済みユーザー

退会済みユーザー

総合スコア0

0グッド

0クリップ

投稿2022/12/13 05:24

前提

・開発未経験。独学。
・Java SE Gold試験勉強中。ITエンジニア就職に向けてポートフォリオ制作初期段階。
・ここでは実験的にサーブレットやhtmlの各種画面遷移処理を試しています。

実現したいこと

・ServletOne.javaにてリダイレクト処理→ServletTwo.javaにてフォワード処理→html
を404エラー無く正常に表示させたい。

発生している問題・エラーメッセージ

該当のソースコード

ServletOne.java

1package servlet; 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;//リダイレクト構文用 10 11@WebServlet("/ServletOne") 12public class ServletOne extends HttpServlet { 13 private static final long serialVersionUID = 1L; 14 15 protected void doGet(HttpServletRequest request, 16 HttpServletResponse response) 17 throws ServletException, IOException { 18 //リダイレクト 19 response.sendRedirect("ServletTwo"); 20 } 21}

ServletTwo.java

1package servlet; 2 3import java.io.IOException; 4 5import javax.servlet.RequestDispatcher;//フォワード構文用 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12@WebServlet("/ServletTwo") 13public class ServletTwo extends HttpServlet { 14 private static final long serialVersionUID = 1L; 15 16 protected void doGet(HttpServletRequest request, 17 HttpServletResponse response) 18 throws ServletException, IOException { 19 20 // フォワード 21 RequestDispatcher dispatcher = 22 request.getRequestDispatcher("/WebContent/preIndex.html"); 23 dispatcher.forward(request, response); 24 } 25}

試したこと

・各ファイルが[@WebServlet("/クラス名")]となっていることを確認。
・doGetメソッドの定義を確認。
→ [response.sendRedirect("ServletTwo");]とリダイレクト処理を記述でok
(参考:https://qiita.com/orihikarumakan/items/71dc443fabc4967b9d40)
・server.xmlのpath の controllerの部分を削除し、/のみにする
(参考 : https://tmg0525.hatenadiary.jp/entry/2019/06/24/194630)

補足情報(FW/ツールのバージョンなど)

OpenJDK Runtime Environment 18.9
windows10 64bit
java se 11
tomcat9

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

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

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

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

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

guest

回答1

0

ベストアンサー

自己解決しました!
サーブレットクラスへのリダイレクトの構文は
response.sendRedirect(/アプリケーション名/URLパターン);
でした。よって、
response.sendRedirect("/app01/ServletTwo");
もしくは、
response.sendRedirect("http://localhost:8080/app01/ServletTwo");
と修正して、正常表示されました!

投稿2022/12/14 06:44

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問