)タイトルにもある通り会員登録画面の作成を現在行っているのですが、どうしてもうまくいきません。
まず、「会員登録用」用のフォームをJSPにより作成(フォームのキャプチャやコードは最後の方に載せます。)
次に、登録ボタンを押すと、入力した会員登録用の情報をJavaサーブレットのdoPostメソッドにより送信を行い、最終確認画面として入力した情報を表示を行う。
今のところここまで行っています。
具体的にどううまくいかないかと言いますと、「会員登録用」のフォームは問題なく表示されます。
しかし、登録ボタンを押した後にHTTPステータス404のエラーが出てしまいます。
実行環境はJava 6(Tomcat6)を使用しています。
*なぜかTomcat8.5と9は中々上手くいかず一番安定?しているTomcat6を使用しています*
以下にコードを載せますのでうまくいかない原因などをご指摘いただけたらと思います。
宜しくお願いいたします。
JSP
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 6 <title>新規登録</title> 7 <script type ="text/javascript"> 8 function exec(){ 9 document.getElementById("fm").submit(); 10 } 11 </script> 12 </head> 13 <body> 14 <div> 15 新規会員登録画面 16 <br><br> 17 「新規登録」<br><br> 18 <h1>登録内容</h1> 19 <form id="fm" action="<%=request.getContextPath()%>/TestP" method="post"> 20 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 21 <tr><td> 22 <table border="0" cellspacing="1" cellpadding="4"> 23 <tr> 24 <td align="center" bgcolor="#C0C0C0">名前</td> 25 <td align="left" bgcolor="#E6E1FF"> 26 <input type="text" name="name" size=40></td> 27 </tr> 28 <tr> 29 <td align="center" bgcolor="#C0C0C0">住所</td> 30 <td align="left" bgcolor="#FFFFFF"> 31 <input type="text" name="Adress" size=60></td> 32 </tr> 33 <tr> 34 <td align="center" bgcolor="#C0C0C0">電話番号</td> 35 <td align="left" bgcolor="#E6E1FF"> 36 <input type="text" name="callphone" size=70></td> 37 </tr> 38 <tr> 39 <td align="center" bgcolor="#C0C0C0">ハンドルネーム</td> 40 <td align="left" bgcolor="#FFFFFF"> 41 <input type="text" name="nickname" size=16 value=""> 42 <font size=2>(半角英数)</font> 43 </td> 44 </tr> 45 <tr> 46 <td align="center" bgcolor="#C0C0C0">パスワード</td> 47 <td align="left" bgcolor="#E6E1FF"> 48 <input type="password" name="password" size=16> 49 <font size=2>(半角英数)</font> 50 </td> 51 </tr> 52 </table> 53 </td></tr> 54 </table> 55 <br> 56 <input type="submit" value=" 登録 " onclick = "exec()"/> 57 </form> 58 </div> 59 </body> 60 </html>
Java
1package Controller; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9 10 11 @WebServlet("/TestP") 12 public class TestP extends HttpServlet{ 13 private static final long serialVersionUID = 1L; 14 15 public TestP() { 16 super(); 17 } 18 19 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 20 21 request.setCharacterEncoding("UTF8"); 22 response.setContentType("text/html; charset=UTF8"); 23 response.getWriter().append("post1:").append(request.getParameter("name")); 24 response.getWriter().append("<BR/>"); 25 response.getWriter().append("post2").append(request.getParameter("Adress")); 26 response.getWriter().append("<BR/>"); 27 response.getWriter().append("post3").append(request.getParameter("callphone")); 28 response.getWriter().append("<BR/>"); 29 response.getWriter().append("post4").append(request.getParameter("nickname")); 30 response.getWriter().append("<BR/>"); 31 response.getWriter().append("post5").append(request.getParameter("password")); 32 33 34 } 35 36} 37
web.xmlの内容です。
*見にくかった場合は項目を教えていただけますでしょうか?*
また、追加で同じJSPファイルを使い結果を出力するコードを作成しましたが、こちらもうまくいかず....
私の考えですと恐らくサーブレット側にうまく結果を反映させることが出来ていないのでは?と考えており、またfowardなどを使用することで、一度入力してもらった内容をサーブレットにdopostメソッドで送信し、またサーブレットから新しいJSPファイルで作成したフォームに反映させる?なども考えています。
JSP
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<% 4 5//入力された引数を取得する 6String title = request.getParameter("title"); 7String name = request.getParameter("name"); 8String Adress = request.getParameter("Adress"); 9String callphone = request.getParameter("callphone"); 10String nickname = request.getParameter("nickname"); 11 12title = new String(title.getBytes("8859_1"), "EUC_JSP"); 13name = new String(name.getBytes("8859_1"), "EUC_JSP"); 14Adress = new String(Adress.getBytes("8859_1"), "EUC_JSP"); 15callphone = new String(callphone.getBytes("8859_1"), "EUC_JSP"); 16%> 17<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 18<html> 19<head> 20<form id="fm" action="<%=request.getContextPath()%>/result.jsp" method="GET"> 21 22 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 23 <title>登録確認</title> 24</head> 25<body> 26<div> 27登録内容 28<br><br> 29[登録確認] <br> 次の内容で登録しました<br><br> 30<table border = "0" cellspacing = "0" cellpadding = "0" bgcolor = "#000000"> 31 <td><td> 32 <table border="0" cellspacing="1" cellpadding="4"> 33 <tr> 34 <td align="center" bgcolor="#C0C0C0">タイトル</td> 35 <td align="left" bgcolor="#E6E1FF"><%= title %></td> 36 </tr> 37 <tr> 38 <td align="center" bgcolor="#C0C0C0">名前</td> 39 <td align="left" bgcolor="#FFFFFF"><%= name %></td> 40 </tr> 41 <tr> 42 <td align="center" bgcolor="#C0C0C0">住所</td> 43 <td align="left" bgcolor="#E6E1FF"><%= Adress %></td> 44 </tr> 45 <tr> 46 <td align="center" bgcolor="#C0C0C0">電話番号</td> 47 <td align="left" bgcolor="#FFFFFF"><%= callphone %></td> 48 </tr> 49 <tr> 50 <td align="center" bgcolor="#C0C0C0">ハンドルネーム</td> 51 <td align="left" bgcolor="#FFFFFF"><%= nickname %></td> 52 </tr> 53 </table> 54 </td></tr> 55</table> 56<br> 57<a href = "list.jsp">戻る</a> 58</body> 59</html>
HTML
1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 4 <title>新規登録</title> 5 <script type ="text/javascript"> 6 function exec(){ 7 document.getElementById("fm").submit(); 8 } 9 </script> 10 </head> 11 <body> 12 <div> 13 新規会員登録画面 14 <br><br> 15 「新規登録」<br><br> 16 <h1>登録内容</h1> 17 <form id="fm" action="/Project2/result.jsp" method="post"> 18 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 19 <tr><td> 20 <table border="0" cellspacing="1" cellpadding="4"> 21 <tr> 22 <td align="center" bgcolor="#C0C0C0">名前</td> 23 <td align="left" bgcolor="#E6E1FF"> 24 <input type="text" name="name" size=40></td> 25 </tr> 26 <tr> 27 <td align="center" bgcolor="#C0C0C0">住所</td> 28 <td align="left" bgcolor="#FFFFFF"> 29 <input type="text" name="Adress" size=60></td> 30 </tr> 31 <tr> 32 <td align="center" bgcolor="#C0C0C0">電話番号</td> 33 <td align="left" bgcolor="#E6E1FF"> 34 <input type="text" name="callphone" size=70></td> 35 </tr> 36 <tr> 37 <td align="center" bgcolor="#C0C0C0">ハンドルネーム</td> 38 <td align="left" bgcolor="#FFFFFF"> 39 <input type="text" name="nickname" size=16 value=""> 40 <font size=2>(半角英数)</font> 41 </td> 42 </tr> 43 <tr> 44 <td align="center" bgcolor="#C0C0C0">パスワード</td> 45 <td align="left" bgcolor="#E6E1FF"> 46 <input type="password" name="password" size=16> 47 <font size=2>(半角英数)</font> 48 </td> 49 </tr> 50 </table> 51 </td></tr> 52 </table> 53 <br> 54 <input type="submit" value=" 登録 " onclick = "exec()"/> 55 </form> 56 </div> 57 </body> 58 </html>
Web.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 3 <display-name>Project2</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 <welcome-file>index.htm</welcome-file> 7 <welcome-file>index.jsp</welcome-file> 8 <welcome-file>default.html</welcome-file> 9 <welcome-file>default.htm</welcome-file> 10 <welcome-file>default.jsp</welcome-file> 11 </welcome-file-list> 12 <servlet> 13 <description></description> 14 <servlet-name>Servlet1</servlet-name> 15 <servlet-class>Controller.TestP</servlet-class> 16 </servlet> 17 <servlet-mapping> 18 <servlet-name>Servlet1</servlet-name> 19 <url-pattern>/TestP</url-pattern> 20 </servlet-mapping> 21</web-app>
回答1件
あなたの回答
tips
プレビュー