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

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

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

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

servlet

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

2回答

4656閲覧

EclipseでJSP/Servletを使ったメールフォームの作り方

hs_kanda

総合スコア34

JSP

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

servlet

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2018/09/27 02:20

EclipseでJSP/Servletを使ってメールフォームを作っています。

以下の(index.jsp)は実行ができません。サーバが「適用なし」になっているため、
「ビルド・パスの構成」から「Javaのビルド・パス」で設定を行えばいいのか
と思うのですが、設定方法がわかりません。

該当のソースコード (index.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSP sample</title> </head> <body> ※Send Form : <br> <form method="post" action="./package-info.java"> <input type="text" name="text1"><br> <input type="submit"> </form> </body> </html>

'開始中 ローカルホストのTomcat9(Java10)'に問題が発生しました。

サーバーローカルホストのTomcat9(Java10)は始動に失敗しました。

HTTPステータス 404 - Not Found Type ステータスレポート メッセージ /CreateMailForm/servlet/MailFormServlet.MailFormServlet 説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. Apache Tomcat/8.5.32

以下のサーブレット(package-info.java)はエラーメッセージが出ます。

該当のソースコード (package-info.java)

package MailFormServlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.Servlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MailFormServlet extends HttpServlet implements Servlet { private static final long serialVersionUID = 1L; public MailFormServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String str = request.getParameter("text1"); str = this.getSanitizedString(str); str = "[JSP-to-SERVLET:\"" + str + "\"]"; request.setAttribute("msg", str); // リダイレクト ServletContext context = this.getServletContext(); RequestDispatcher dispatcher = context.getRequestDispatcher("/page.jsp"); dispatcher.forward(request, response); } // サニタイズ処理 public String getSanitizedString(String s) { String str = s; str = str.replace("<", "&lt;"); str = str.replace(">", "&gt;"); str = str.replace("\"", "&quot;"); str = str.replace(" ", "&ensp;"); return str; } }

試したこと

package-info.javaのエラーについては、ネットで調べてみると、
「ResistrationServlet なのか RegistrationServlet なのかを決めるところから」
とあったため調べてみましたが、何のことかわかりませんでした。

Tomcatのwebサーバが何をやっているのかについて、
オライリージャパン社の「Tomcatハンドブック」という本で
調べてみましたが、どの方法もうまくいきませんでした。

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

Pleiades all in oneからEclipse Photonを使用。

前提・実現したいこと

JSP/Servletでメールを送受信するフォームを作りたいです。

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

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

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

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

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

guest

回答2

0

エラーログに

Apache Tomcat/8.5.32

と出ていますので、ローカルホストのTomcat9(Java10) 選択時に指定しているTomcatのバージョンが違っているかと。

一度EclipseのサーバからTomcat9(Java10)を削除し、もう一度サーバの新規作成で、Tomcat9を指定してください。

投稿2018/09/27 04:27

A-pZ

総合スコア12011

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

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

hs_kanda

2018/10/01 01:19

Tomcat9を指定してみましたが、うまくいきません。 最新版よりも、古いバージョンの方がいいのかと思い、 Eclipse Neonで同じようにやってみましたが、 今度は実行自体できません。 もう少し粘ってみます。お忙しいところ回答いただきありがとうございました。
guest

0

サーバーローカルホストのTomcat9(Java10)は始動に失敗しました。

とコンソールに出ているなら、Tomcat上でアプリケーションが正常に起動できていません。
アプリが起動していないとURLにアクセスしてもそのようなURLのコンテンツは存在しないと404エラーになります。

起動設定ファイルを見直す必要があると思いますので、ご確認下さい。
起動設定ファイルは以下のとおり。

  • web.xml
  • server.xml
  • context.xml

何を記載すればよいかはググれば色々と出てきますので調べてみて下さい。

投稿2018/09/27 04:08

SE-studying-now

総合スコア351

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

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

hs_kanda

2018/10/01 01:21

回答いただきありがとうございます。 Tomcatが原因ではないということでしょうか。
SE-studying-now

2018/10/03 07:15

Tomcatは正常に起動していると思いますよ。 回答にも書きましたが「アプリが起動していない」のが原因でindex.jspのURLにアクセスできない状態だと思います。 Tomcatはアプリケーションサーバです。アプリケーションサーバ上でアプリを正しく起動させるため、アプリを認識させるために設定ファイルがあります。 回答に挙げた設定ファイルはTomcatでアプリを正しく起動させるための設定を記載するものです。 この設定ファイルの設定が誤っているとアプリはTomcat上で起動しません。 ですので、これらの設定ファイルを見直しましょうとお伝えしました。 言ってることがちんぷんかんぷんかもしれませんが、頑張りましょう!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問