HTML
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 "http://www.w3.org/TR/html4/strict.dtd"> 3<html> 4<head> 5<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6</head> 7<body> 8 9 <form action="../../../GetRequestParameterJP" method="post"> 10 名前:<input type="text" name="name" value="山田 山田男"><br> 年齢:<input 11 type="text" name="age" value="47"><br> 住所:<input 12 type="text" name="address" value="埼玉県"><br> 13 <button type="submit">POSTリクエスト</button> 14 </form> 15 16</body> 17</html>
Java
1package section232; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12/** 13 * Servlet implementation class GetRequestParameterJPServlet 14 */ 15@WebServlet("/GetRequestParameterJPServlet") 16public class GetRequestParameterJPServlet extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 /** 20 * @see HttpServlet#HttpServlet() 21 */ 22 public GetRequestParameterJPServlet() { 23 super(); 24 // TODO Auto-generated constructor stub 25 } 26 27 /** 28 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 29 */ 30 protected void doGet(HttpServletRequest request, HttpServletResponse response) 31 throws ServletException, IOException { 32 // TODO Auto-generated method stub 33 response.getWriter().append("Served at: ").append(request.getContextPath()); 34 } 35 36 /** 37 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 38 */ 39 // POSTリクエストを処理するメソッド 40 protected void doPost( 41 HttpServletRequest request, 42 HttpServletResponse response) 43 throws ServletException, IOException { 44 45 // 出力内容のコンテントタイプと文字コードを設定 46 response.setContentType("text/html; charset=utf-8"); 47 48 // リクエストパラメータの文字コードを設定 49 request.setCharacterEncoding("utf-8"); 50 51 // パラメータの取得 52 String name = request.getParameter("name"); 53 String age = request.getParameter("age"); 54 String address = request.getParameter("address"); 55 56 // HTML形式の内容を出力する 57 PrintWriter out = response.getWriter(); 58 out.write("<html><body>"); 59 out.write("POSTパラメータ<br>"); 60 out.write("name:" + name + "<br>"); 61 out.write("age :" + age + "<br>"); 62 out.write("address:" + address + "<br>"); 63 out.write("</body></html>"); 64 out.flush(); 65 out.close(); 66 } 67}
上のHTMLLから下のサーブレットにPOSTで飛ぶプログラムなのですが、POSTのURLが合っていないようです。相対パスで上る数は合っていると思うのですが、正しいURLをご教授願います。
イクリプス内の構造は以下です。上記の二つのコードは画像の中で選択されています。
またJavaの絶対パスも一応載せておきます。
Users/yutanakai/Downloads/sample/CHAPTER13/232/GetRequestParameterJPServlet.java
【追記❶】
サーブレットクラスの場合は
/アプリケーション名/URLパターン
のようなので
/example/GetRequestParameterJPServlet
のはずですが、同じく404と出ます。ご教授お願いします。
回答2件
あなたの回答
tips
プレビュー