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

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

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

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Eclipse

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

Q&A

解決済

2回答

514閲覧

サーブレットを用いたWebページの表示について

nagomi72

総合スコア51

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Eclipse

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

0グッド

0クリップ

投稿2018/06/12 05:21

サーブレットの学習に取り組んでいます。

Eclipseで動的Webプロジェクトを作成し、プロジェクト名はexampleとしています。

サーバーの始動を確認後、作成したSampleServlet.java(example/src/servlet/SampleServlet.java)を実行したところ
404のエラーページが表示されました。

ソースコードは以下です。

package servlet; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class SampleServlet */ @WebServlet("/SampleServlet") public class SampleServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //運勢をランダムで決定 String [] luckArray = {"超すっきり","すっきり","最悪"}; //0以上3未満の乱数を生成 int index = (int) (Math.random() * 3); String luck = luckArray[index]; //実行日を取得 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String today = sdf.format(date); //htmlを出力 response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.print("<title>"); out.print("<title>すっきり占い</title>"); out.print("</head>"); out.print("<body>"); out.print("<p>"+ today + "の運勢は" + luck + "デス</p>"); out.print("</body>"); out.print("</html>"); } }

サーブレットに触れるのがはじめてなため…

足りていない情報等ございましたら追記いたしますので
ご指摘下さい。

ご教授の程よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

自己解決

アノテーションを使用したときうまくいかず…

仕方がないのでweb.xmlファイルを作成し代替案とした。

//追記

プロジェクト名WebHello
パッケージ名pack
アノテーション@WebServlet(name = "ShowDate", urlPatterns = { "/ShowDate" })

URLにlocalhost:8080/WebHello/ShowDateとしたとき成功
以下、コード

package pack; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //(1)Servletクラスの名称を「ShowDate」とし、URLパターンを「/ShowDate」とした場合の設定例です。 //  URLに/ShowDateを指定することでServletクラスにアクセス可能です。 @WebServlet(name = "ShowDate", urlPatterns = { "/ShowDate" }) public class ShowDateServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println(new java.util.Date()); out.println(""); out.println(""); } }

投稿2018/06/17 05:29

編集2018/06/19 07:39
nagomi72

総合スコア51

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

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

0

@WebServlet("/SampleServlet")

@WebServletアノテーション - Javaサーブレット開発入門 - わかりやすい図解解説

URLで指定して呼び出す場合

http://サーバホスト名:ポート番号/Eclipseプロジェクト名/@WebServletアノテーション

投稿2018/06/12 05:28

tkturbo

総合スコア5572

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

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

nagomi72

2018/06/12 06:35

ご回答いただきましてありがとうございます。 上記で頂きました構文を私の状況に置き換えると http://192.168.0120:8080/example/SampleServlet となるかと思われますが404エラーが出たままです。 この場合には何が考えられるのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問