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

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

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

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

Q&A

解決済

2回答

3697閲覧

eclipseでjavaサーブレットプログラムが実行できない

takahirooshiro

総合スコア15

Java

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

0グッド

0クリップ

投稿2018/11/16 16:05

編集2018/11/17 14:21

プログラミング初心者で申し訳ないです。eclipseでjavaサーブレットプログラムを書いているのですが、次のコードが実行できません。
package名 sample クラス名 Sample1

package sample; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Sample1") public class Sample1 extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } }

エラーの説明
「404-notfound  /sample/Sample1  The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.」

アクセスしたURL http://localhost:8080/sample/Sample1

動的プロジェクトでプロジェクトを作成して、サーバーを追加して、サーバーで実行で実行しました。初心者なのでよくわからず、サーバーの設定などはあまりいじってません。とあるサイトの解説どおりにやってみました。なにか修正する必要がありましたら、コメントでよろしくお願いします。

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

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

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

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

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

m.ts10806

2018/11/16 22:12

コードなるべく全体をご提示ください。また実行した手順も記載してください
A-pZ

2018/11/17 01:50

サーブレットの設定と、サーブレットのクラスを書くと回答が得られるかもしれません。
teikoku-penguin

2018/11/17 10:00 編集

HttpStatsuCodeが404ですので実行ができないのではなく指定したパスでサーブレットにアクセスできないのではないでしょうか?
takahirooshiro

2018/11/17 15:13 編集

初心者で大変申し訳ないですが、eclipseのプロジェクトのなかのには見つかりませんでした。ダウンロードしたtomcatのファイルにある"~\tomcat\9\webapps\examples\WEB-INF"の場所のweb.xmlファイルでよろしいですか?
teikoku-penguin

2018/11/17 15:27

もしなにもweb.xmlを編集した覚えがないのであればそれ自体が404エラーの原因かもしれません servletファイルへのルーティングをweb.xmlに書いて下さい
guest

回答2

0

ベストアンサー

質問修正依頼の内容を踏まえて回答します
基本的にJava Servletの仕組みがわからないのでればまず仕組みを学習すると良いと思います。
とりあえず環境だけでも先に構築してHello Worldしたいのであれば以下の記事が参考になると思います。

https://qiita.com/Kazunori-Kimura/items/aad2366531502a1da618
https://qiita.com/Kazunori-Kimura/items/a15a011485ac92074d6f

推測になりますがなぜ404エラーが出てページが表示されないのかを考えると以下の可能性が高いです

  • web.xmlに/Sample1class Sample1を紐付ける設定(ルーティング)がない
  • publicルート(公開ディレクトリ)から見たSample1のパスが間違っているから

投稿2018/11/17 15:36

teikoku-penguin

総合スコア314

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

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

takahirooshiro

2018/11/18 06:07 編集

インストールしたtomcat下のweb.xmlファイルに、<servlet>と<sevletmapping>に対応したクラス名などを記載し追加して、再度実行したところ正しく表示されました。 丁寧に解説してもらいありがとうございました。非常にわかりやすかったです。 また、コメントをくださった方も非常に勉強になりました。
guest

0

コードならびに設定には誤りがありませんでした。

web.xmlがなく、@WebServletをお使いなので、サーブレット仕様の3.0以降ですね。

サーバへ搭載したときのURLは、デフォルトでは

http://localhost:8080/プロジェクト名/@WebServletの値になります。

例えばプロジェクト名が example であれば

http://localhost:8080/example/Sample1 になります。パッケージ名は特に関係ありません。

投稿2018/11/18 04:15

A-pZ

総合スコア12011

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問