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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Eclipse

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

4715閲覧

java HTMLファイルからサーブレット呼び出しで 404 NotFoundが発生します

kawatan

総合スコア2

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Eclipse

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/04/28 06:50

編集2020/04/29 08:44

前提・実現したいこと

javaのサーバサイドのスクリプトの勉強をしておりますが
HTMLファイルからPOSTでサーブレットを呼び出す処理で404が返却され苦慮しております。
3日ほど各サイトや古い書籍を調査しましたが解決しなかった為にこちらに質問を記載させていただきました。
お手数ですが何かアドバイスを頂けますと助かります。

###エラーメッセージ
HTTPステータス 404 - Not Found
Type ステータスレポート
メッセージ /SampleServlet/HelloWorld
説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

###プロジェクトエクスプローラー構成
イメージ説明

該当のソースコード

■■■HelloWorld.java■■■

package sampleServletProj; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { public HelloWorld() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=iso-2022-jp"); request.setCharacterEncoding("iso-2022-jp"); PrintWriter out = response.getWriter(); String name = request.getParameter("NAME"); String id = request.getParameter("ID"); String belongs = request.getParameter("BELONGS"); out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); out.println("<html>"); out.println("<head>"); out.println("<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>"); out.println("<title>入力結果の確認</title>"); out.println("</head>"); out.println("<body>"); out.println("<P>"); out.println("以下の情報を受け取りました。"); out.println("</P>"); out.println("<TABLE border=\"1\">"); out.println("<TR>"); out.println("<TD>名前</TD>"); out.println("<TD><FONT color=red>" + name + "</FONT></TD>"); out.println("</TR>"); out.println("<TR>"); out.println("<TD>学籍番号</TD>"); out.println("<TD><FONT color=red>" + id + "</FONT></TD>"); out.println("</TR>"); out.println("<TR>"); out.println("<TD>所属</TD>"); out.println("<TD><FONT color=red>" + belongs + "</FONT></TD>"); out.println("</TR>"); out.println("</TABLE>"); out.println("<P>"); out.println("情報を修正する場合は以下の戻るボタンを押してください。"); out.println("<FORM method=\"GET\" action=\"./index.html\">"); out.println("<INPUT type=\"submit\" value=\"戻る\">"); out.println("</FORM>"); out.println("</P>"); out.println("</body>"); out.println("</html>"); out.close(); } }

■■■index.htnl■■■

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>フォーム入力</title> </head> <body> <P> 以下のフォームに情報を記載してください。 </P> <FORM method="POST" action="/SampleServlet/HelloWorld"> <TABLE summary="form of NAME, ID and BELONGS"> <TR> <TD>名前</TD> <TD><div> : <input type="text" name="NAME"></div></TD> </TR> <TR> <TD>学籍番号</TD> <TD><div> : <input type="text" name="ID"></div></TD> </TR> <TR> <TD>所属</TD> <TD><div> : <input type="text" name="BELONGS"></div></TD> </TR> </TABLE> <INPUT type="submit" value="送信"> <INPUT type="reset" value="取消"> </FORM> </body> </html>

■■■web.xml■■■

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name></display-name> <servlet> <description></description> <display-name></display-name> <servlet-name>HelloWorld</servlet-name> <servlet-class>sampleServletProj.HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/SampleServlet</url-pattern> </servlet-mapping> </web-app>

試したこと

・スクリプトの保存及びPC、Tomcat再起動は行っています。
・Tomcat再インストール ※xamppを使用している為に念の為に再インストールしています
・うまく動作しなかった為にプロジェクトそものの完全削除→再作成をしております
・別の動的プロジェクトを作成、WebContent内でのhtmlファイル→JSPファイルの動作は正常でした
・web.xmlの関連サイトを閲覧し、URLのパスマッピングの仕組みなど調査して
「servlet-name」「servlet-class」など調査しながら色々試して見ましたがうまくいきませんでした。

補足情報

Windows 10
Eclipse 4.13
Tomcat 7
※Eclipse実行時はxamppのTomcatは停止させております

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

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

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

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

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

m.ts10806

2020/04/28 07:20

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 また、過去案件の保守など余程の理由がない限りは新しい環境使った方が良いと思います。 HTMLも4では古すぎます。学習なのであれば尚更、Eclipseも最新のもののほうが良いです。
kawatan

2020/04/28 11:56

>m.ts10806様 インデントが崩れたコードで大変失礼しました。またcode機能についてご紹介ありがとうございました。 環境についても仰る通りですね。古い記事や本を頼りに進めてきましたが、 よく考えれば予期せぬエラーの元なので早速環境のアップデートを行いたいと思います。
m.ts10806

2020/04/28 23:34

質問は編集できますので。
kawatan

2020/04/29 08:46

失礼いたしました。<code>機能を利用して質問を編集いたしました。 ご指摘ありがとうございました。
guest

回答1

0

ベストアンサー

xml

1<-- web.xml --> 2<servlet-name>HelloWorld</servlet-name> 3<url-pattern>/SampleServlet</url-pattern>

web.xmlが上記の設定であるならHelloWorldにアクセスするには、

コンテキストパス(プロジェクト名?)/SampleServlet

じゃないかと思いますが。

/SampleServlet/HelloWorld

で、アクセスしたいならurl-patternを修正してください。

投稿2020/04/28 09:28

momon-ga

総合スコア4826

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

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

退会済みユーザー

退会済みユーザー

2020/04/28 10:50 編集

(ΦωΦ)早とちりした
kawatan

2020/04/28 12:14

>momon-ga様 ありがとうございました。url-patternを見直し、index.htmlのパスを修正したところ なんとか正常に動作しました。 web.xmlの修正 ✕:<url-pattern>/SampleServlet</url-pattern> ○:<url-pattern>/index</url-pattern> index.htmlの修正 ✕:<FORM method="POST" action="/SampleServlet/HelloWorld"> ○:<FORM method="POST" action="index"> url-patternを修正後に404が発生した際にエラーが画面のURLのが 「http://localhost:8080/SampleServlet/HelloWorld」 となっていた為にhtmlファイルのリクエスト→レスポンスもうまく出来ていなかったようです。 >asahina1979様 コメントありがとうございます。無事解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問