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

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

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

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

Java

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

Q&A

解決済

1回答

1870閲覧

JSPで、サーブレットの実行ができません

speed_e

総合スコア12

JSP

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

Java

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

0グッド

0クリップ

投稿2020/02/05 01:28

編集2020/02/10 02:22

こちらのサイトを参考に、JSPを学習していますが、最初の方の「Servletの実行」がうまくいきません。

http://localhost:8080/servletTest/src/servletTestでアクセスしても、「HTTPステータス 404 – 見つかりません。」になってしまいます。

(test.jsp↓)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>title/title> </head> <body> <form action="/servlet/src/servlet"> a<input type="text" name="item"> <br> b<input type="text" name="item"> <br> <input type="submit" value="決定"> </form>

また、上記のJSPを実行してから「決定」ボタンを押しても「HTTPステータス 404 – 見つかりません。」になります。
パッケージエクスプローラー上でのservletTest.javaの階層はservletTest→src→servletTest→servletTest.java」となっています。

(ServletTest.java)

package servletTest; import java.io.IOException; import javax.servlet.RequestDispatcher; 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("/helloworld") public class ServletTest extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String view = "/test.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(view); dispatcher.forward(request, response); } }

プロジェクト名はServletTest、パッケージ名も「ServletTest」だと思います。

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

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

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

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

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

m.ts10806

2020/02/05 01:36

参考サイトのどこにURLに「src」を含むように書かれてますか? というか前の質問未解決のまま次々質問投稿されるのはちょっと。
m.ts10806

2020/02/05 01:55

いずれにしてもこのコードだけでは誰も再現確認できませんよ。 プロジェクト名も不明 パッケージも不明 Javaのコードも不明です
speed_e

2020/02/05 02:05

失礼しました。 追記しました。
guest

回答1

0

ベストアンサー

@WebServlet("/helloworld")

プロジェクト名はServletTest、パッケージ名も「ServletTest」だと思います。

なら
http://localhost:8080/ServletTest/helloworldではないでしょうか。
アノテーションについても理解を深めてください。

ただ、コードを見る限りパッケージはservletTestですね。大文字小文字はほとんどの言語で大別されます。

投稿2020/02/05 02:15

m.ts10806

総合スコア80850

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

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

speed_e

2020/02/05 02:47

ありがとうございます。 「http://localhost:8080/ServletTest/helloworld」でも404エラーになってしまいます。http://localhost:8080/servletTest/ServletTest」など、大文字小文字を意識していろいろと試してみましたが、全てエラーになってしまいます 例外的に「http://localhost:8080/servletTest/test.jsp」のみエラーにならず正常に画面が表示されています。 アノテーション調べました。 @WebServletの場合は注釈として、サーブレットクラスのURLパターンを示すとのことですが、よくわからなかったのですがアノテーションによる制約が原因なのでしょうか。
m.ts10806

2020/02/05 03:05

リクエストを受けるURLパターンを示します。 つまりそのURLでアクセスされたときにそのメソッドで受けとるということ
退会済みユーザー

退会済みユーザー

2020/02/05 03:14

その前に ${projectDir}/WebContent/servletTest/WebContent/test.jsp があるのかって問題もあるんじゃね
speed_e

2020/02/05 03:23

asahina1979さん ありがとうございます。 「/servletTest/WebContent/test.jsp」はあります。 「/WebContent/servletTest/WebContent/test.jsp」ではないかもしれないです。 Eclipseのパッケージエクスプローラーや「修飾名のコピー」で確認した限り、servletTest/WebContent/test.jspより上がどうなっているのかが確認できないです。
speed_e

2020/02/05 03:42

補足なのですが、http://localhost:8080でアクセスしても404エラーになります。 普通ならApacheの画面みたいなのが出るのでは?と首をひねってます
m.ts10806

2020/02/05 03:54

>普通ならApacheの画面みたいなのが いえ、ないと思います。 そもそもどのように立ち上げられているのでしょうか。
speed_e

2020/02/05 04:01

そうだったんですね。 立ち上げとはWebサーバーのことでしょうか。 サーバー関係のことは特に何もしていない状態で、EclipseをインストールしてJSPを使っている状況です。
m.ts10806

2020/02/05 04:53

いえ、ですから。 eclipseからどのように実行しているかを聞いています
m.ts10806

2020/02/05 04:54

「再現できる手順」を求めています。全ての人がeclipseを使い、手順も1つしかないのなら説明不要ですが、そうではないので。 他者が動作確認するための手順。 質問者さんが行った作業の詳細を求めています。
speed_e

2020/02/10 02:24

遅くなり申し訳ありません。 パスを「String view =」に変えることにより解決しました。 次からは再現してもらえるような手順を記載するように気を付けたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問