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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

2回答

2387閲覧

GETメソッドを呼び出した際のHTTPステータス 404の原因を知りたい

ryo-i

総合スコア6

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2019/10/03 14:02

##"HTTPステータス 404 – 見つかりません。"とのエラーが発生しているので原因及び修正点や解決策をご教示いただきたいです。以下に実際実行したコードとエラー画面を掲載しましたのでお手数ですがご確認のほどよろしくお願いいたします。

※原因としてパッケージ?が何か怒られているのかどうなのか。。勉強を始めたばかりで無知でお恥ずかしい限りですが初心者でもエラーを修正できるような回答いただければとても幸いです、、、

イメージ説明

実行jspファイル

inputForm.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" %> 2 3<!DOCTYPE html> 4<html> 5 <head> 6 <title>Java入門</title> 7 </head> 8 <body> 9 <p>インプットフォーム</p> 10 <p>値を入力してください</p> 11 12 <%-- GETメソッドでテキストを送信 --%> 13 <form action="../FormServlet"> 14 <p>ここに値を入れてください:<input type="text" name="text1"></p> 15 <p>ここに値を入れてください:<input type="text" name="text2"></p> 16 <input type="submit" value="GETで送信"> 17 </form> 18 19 <%-- POSTメソッドでテキストを送信 --%> 20 <form method="post" action="../FormServlet"> 21 <p>ここに値を入れてください:<input type="text" name="text1"></p> 22 <p>ここに値を入れてください:<input type="text" name="text2"></p> 23 <input type="submit" value="POSTで送信"> 24 </form> 25 </body> 26</html>

###上のjspファイルを実行した結果
イメージ説明

###該当のServletファイル

FormServlet.java

1import java.io.IOException; 2import javax.servlet.ServletException; 3import javax.servlet.annotation.WebServlet; 4import javax.servlet.http.HttpServlet; 5import javax.servlet.http.HttpServletRequest; 6import javax.servlet.http.HttpServletResponse; 7 8/** 9 * Java入門 Formデータ連携クラス 10 */ 11@WebServlet("/FormServlet") 12public class FormServlet extends HttpServlet { 13 14 private static final long serialVersionUID = 1L; 15 16 /** 17 * コンストラクタ. 18 */ 19 public FormServlet() { 20 super(); 21 } 22 23 /** 24 * GETメソッドでリクエストされた場合の処理. 25 */ 26 protected void doGet(HttpServletRequest request, HttpServletResponse response) 27 throws ServletException, IOException { 28 29 System.out.println("GETメソッドで呼び出されました"); 30 31 String text1 = ""; // テキスト1格納用変数 32 String text2 = ""; // テキスト2格納用変数 33 34 // JSPの画面から値を取得 35 text1 = request.getParameter("text1"); 36 text2 = request.getParameter("text2"); 37 38 // 取得した値をコンソールに出力 39 System.out.println(text1); 40 System.out.println(text2); 41 } 42 43 /** 44 * POSTメソッドで呼び出された場合の処理. 45 */ 46 protected void doPost(HttpServletRequest request, HttpServletResponse response) 47 throws ServletException, IOException { 48 49 System.out.println("POSTメソッドで呼び出されました"); 50 51 String text1 = ""; // テキスト1格納用変数 52 String text2 = ""; // テキスト2格納用変数 53 54 // JSPの画面から値を取得 55 text1 = request.getParameter("text1"); 56 text2 = request.getParameter("text2"); 57 58 // 取得した値をコンソールに出力 59 System.out.println(text1); 60 System.out.println(text2); 61 } 62}

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

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

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

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

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

guest

回答2

0

formタグのaction属性を
action="<%= request.getContextPath() %>/FormServlet"
にしてみてはどうでしょう。
今の状態ではURLが変わったときに404が出ます

投稿2020/09/04 01:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

動作確認できる環境が無いので古い経験からの推測のみですが、jspファイル中の<form action="../FormServlet">でのaction指定のPATHは、./FormServlet ではないでしょうか?

WEB-INF/ディレクトリ下にjsp/ディレクトリなどを設け、WEB-INF/jsp/inputForm.jspなどと配置すれば ../FormServletでOKだと思いますが、今のものだとひとつ上のディレクトリになるので、FormServlet.javaと inputForm.jspが同一階層にならないように思います。

投稿2019/10/03 17:29

dodox86

総合スコア9183

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

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

ryo-i

2019/10/09 07:34

ご回答に対する返信が遅くなり申し訳ございません。 いただいた回答通りドットを一つ削除した <form action="./FormServlet">にしてもやはり同じエラー404が返ってきてしまいます。。
dodox86

2019/10/09 10:29

一応お聞きしますが、FormServlet.javaはちゃんとコンパイルできて、WEB-INF/classes/下 なり、どこかに*.classファイルはできているのですよね? また、JSPからformのactionで呼ぶのではなく、ブラウザからいきなり http://locahost:8080/FormServlet などと指定するとどうなりますか?(GETで行くはず) GETのみサポートする簡単なサーブレットひとつ作って、ブラウザーからいきなり呼び出して試してみてください。 あと、tomcat自体は新しいようですが、Java自体はJDK1.3 をお使いですか?(ずいぶん古いですが。もはやサポート外では?)
dodox86

2019/10/09 10:32

まぁ、JDK1.3と古くても、HTTPステータス404エラーにはならず、なっても別のエラーが起きそうですけれども。(あくまで推測です)
ryo-i

2019/10/09 11:41

ご回答ありがとうございます。 > ブラウザーからいきなり呼び出して試してみてください。 上記の部分は考えて試行してみます。 JDKのバージョンは「/usr/libexec/java_home -V」コマンドで確認してみたら"Java SE 13"と出てきました。JDK1.3とはどのあたりでご確認いただけましたでしょうか?
dodox86

2019/10/09 11:46

> JDK1.3とはどのあたりでご確認いただけましたでしょうか? 質問中の画像、eclipseの下の出力ウィンドウに、"ローカルホスト のTomcat v9.0 ... /Library/Java/JavaVirtualMachis/jdk-1.3.jdk/Contents... のように出力されているので、JDK1.3を使われているのかな、と思いました。
ryo-i

2019/10/09 12:16

ありがとうございます。 バージョン周りも改めて確認させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問