###前提・実現したいこと
EclipseでJAVAによるサーバーサイドプログラムを作成しております。
今までは動的Webプロジェクトだったのですが、今回はGoogleCloudPlatformとの連携を考慮し、Webアプリケーション・プロジェクトでWebアプリを作成しております。
しかし、プロジェクト名「TestGoogle」内のフォルダー「war」にある 「formSample.jsp」からPOSTリクエストで
<form action="TestGoogle/FormSampleServlet" method="post"> ... </form>とし、TestGoogle=>src=>servletのフォルダ内にあるFormSampleServlet.javaにPOSTリクエストをしようとしたのですが
「No file found for: /TestGoogle/FormSampleServlet」と表示されてしまいます。
FormSampleServlet.java内では@WebServlet("/FormSampleServlet")を指定しており、動的WebプロジェクトならリクエストできるはずなのですがWebアプリケーション・プロジェクトの場合はうまくいきません。
どのようにすればよいのでしょうか。分かる方いらっしゃいましたらご教授お願いいたします。
###フォルダの構成
###formSample.javaのソースコード
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
###FormSampleServlet.javaのソースコード
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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("/FormSampleServlet")
public class FormSampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String name=request.getParameter("name"); String gender=request.getParameter("gender"); if(gender.equals("0")){gender="man";} else if(gender.equals("1")){gender="woman";} String msg=name+" san( "+gender +" ) is registered"; response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("<!DOCTYPE HTML>"); out.println("<html>"); out.println("<head>"); out.println("<meta charset=\"UTF-8\">"); out.println("</head>"); out.println("<body>"); out.println("<p>"+msg+"</p>"); out.println("</body>"); out.println("</html>"); }
}
回答1件
あなたの回答
tips
プレビュー