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

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

新規登録して質問してみよう
ただいま回答率
85.50%
サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

HTML

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

Q&A

解決済

1回答

737閲覧

パスについて HTMLファイルからJavaファイルを指定

Javastudy

総合スコア1

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

HTML

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

0グッド

0クリップ

投稿2021/05/24 13:34

編集2021/05/24 13:43

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
htmlファイルよりjavaファイルを指定したいのですが、どなたか詳しい方がいればご教授願います。teratail内似たような内容を確認しましたがよく分からなかったです。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

HTTPステータス404-見つかりません。
イメージ説明
イメージ説明

該当のソースコード

html

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Insert title here</title> 6 </head> 7 <body> 8 <form action="../src/test/challenge.java" method="GET"> 9 <p>名前</p> 10 <input type="text" name="name"> 11 12 <input type="submit" name="送信"> 13 </form> 14 </body> 15</html>

java

1package test; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.annotation.WebServlet; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10 11/** 12 * Servlet implementation class challenge 13 */ 14@WebServlet("/challenge") 15public class challenge extends HttpServlet { 16 private static final long serialVersionUID = 1L; 17 18 /** 19 * @see HttpServlet#HttpServlet() 20 */ 21 public challenge() { 22 super(); 23 // TODO Auto-generated constructor stub 24 } 25 26 /** 27 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 28 */ 29 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 30 // TODO Auto-generated method stub 31 response.getWriter().append("Served at: ").append(request.getContextPath()); 32 33 request.setCharacterEncoding("UTF-8"); 34 35 System.out.println(request.getParameter("name")); 36 } 37 38 /** 39 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 40 */ 41 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 42 // TODO Auto-generated method stub 43 doGet(request, response); 44 } 45 46} 47

試したこと

htmlファイルのパスの指定が間違っているからエラーになると思っていますが、資料を見ながら打ってもエラーになってしまいます。

補足情報(FW/ツールのバージョンなど)

eclipse2020
htmlファイルはWebContentの直下
javaファイルはsrcのtestパッケージの配下

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

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

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

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

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

guest

回答1

0

ベストアンサー

ファイルではなくサーブレットにマッピングされたURLを指定してください。
ちゃんと@WebServletアノテーションで指定してますね。
コンテキストパスなども気を付けた方が良いので、直に書くのではなく、コンテキストパス+マッピングURLとすると良いです。

※キーワードは多く入れこんだつもりなので何も調べがつかない事態は避けられると思います。

が、何を参考に書いたら.javaを直接指定なんてことになるのか。
きちんとサーブレットの入門書やネットの記事確認されたほうが良いです。

投稿2021/05/24 13:57

m.ts10806

総合スコア80765

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

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

Javastudy

2021/05/24 14:19

ご指摘ありがとうございます。 解決いたしました。
m.ts10806

2021/05/24 14:20

結局何を参考に書いたのでしょう。 action属性に.javaを指定するような記事は見たことがありません。
Javastudy

2021/05/24 14:33

過去にjspファイルからjspファイルへデータを送信する際に同じように.javaと書いておりまして、先輩からいただいた資料にも.javaと記載されていたため上記のように書いておりました。 誤った知識をつけないようにサーブレットに関する入門書などを購入しきちんと勉強しようと思います。
m.ts10806

2021/05/24 21:18

Webに関しては「ファイル」という概念を捨てた方が良いです。 「リクエスト」です。jspはWebルートに配置されて、リクエスト受け付けが可能なプログラムです。
Javastudy

2021/05/24 23:35

コメントありがとうございます。 リクエスト、レスポンス、画面遷移の仕組みを一から勉強していきたいと思います。
m.ts10806

2021/05/24 23:38

Webがどのような仕組みで動いているか あたりもおさえると理解が深まると思います。
Javastudy

2021/05/25 00:57

ありがとうございます。 合わせて確認させてもらいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問