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("<", "<"); str = str.replace(">", ">"); str = str.replace("\"", """); str = str.replace(" ", " "); return str; } }
試したこと
package-info.javaのエラーについては、ネットで調べてみると、
「ResistrationServlet なのか RegistrationServlet なのかを決めるところから」
とあったため調べてみましたが、何のことかわかりませんでした。
Tomcatのwebサーバが何をやっているのかについて、
オライリージャパン社の「Tomcatハンドブック」という本で
調べてみましたが、どの方法もうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
Pleiades all in oneからEclipse Photonを使用。
前提・実現したいこと
JSP/Servletでメールを送受信するフォームを作りたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/01 01:19