〇やりたいこと
Input.jspで入力した内容を、InputServlet.javaを通しその結果を、result.jspに表示したい。
〇困っていること
最初の入力画面は表示できている。(http://localhost:8080/プロジェクト名/Input.jspと、urlにベタ打ちですが。)
しかし入力後送信ボタンを押すと404NOT FOUNDエラーが出る。
〇試してみたこと
①formのaction先を変えてみた。
(プロジェクト名/InputServlet.java)(Servlet/InputServlet.java)など。
②web.xmlのservlet登録を変えてみた。
(url-patternを/Servlet/InputServlet や、/Input など)
〇知人からは、web.xmlのmappingをもう一度見直すか、動的プロジェクトのコンテキストをtomcatディレクトリに固定してみるのは?とアドバイスをもらいました。
しかし、どのようにweb.xmlに変化を加えるのかがわからず。
コンテキストに関しては、一応調べながらtomcatディレクトリを指定できているはずです。
なぜ遷移が上手くいかないのか教えていただきたいです。
Input.jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>社員情報入力</title> 8</head> 9<body> 10 <h1>社員番号・名前を入力してください</h1> 11 <form action="/InputServlet" method="get"> 12 <p>社員番号:</p><input type="text" name="number"> 13 <p>名前:</p><input type="text" name="name"> 14 <input type="submit" name="send" value="送信"> 15 </form> 16</body> 17</html>
InputServlet.java
1package input; 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 * Servlet implementation class InputServlet 12 */ 13public class InputServlet extends HttpServlet { 14 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 15 String number = request.getParameter("number"); 16 String name = request.getParameter("name"); 17 18 request.setAttribute("number" , number); 19 request.setAttribute("name" , name); 20 21 getServletConfig().getServletContext().getRequestDispatcher("/result.jsp").forward(request , response); 22 } 23 24} 25
result.jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>入力結果</title> 8</head> 9<body> 10 <form method="get" action="/InputServlet"> 11 <p>社員番号は、</p><%= request.getAttribute("number") %> 12 <p>名前は、</p><%= request.getAttribute("name") %> 13 </form> 14</body> 15</html>
wev.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>Tomcat_Task</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 <display-name>InputServlet</display-name> 15 <servlet-name>InputServlet</servlet-name> 16 <servlet-class>input.InputServlet</servlet-class> 17 </servlet> 18 <servlet-mapping> 19 <servlet-name>InputServlet</servlet-name> 20 <url-pattern>/InputServlet</url-pattern> 21 </servlet-mapping> 22</web-app>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/01 06:15