初心者です。Javaでおみくじを作っています。
http://localhost:8080/first_webapp/omikuji.jspにて"占う!"と押すと404エラーになってしまいます。
どのように改善すればよろしいでしょうか?
氏名が未入力で送信⇨「入力内容にエラーがあります。氏名を入力してください」を表示。
氏名を入力 ⇨氏名と一緒に占い結果が表示。としたいです。
Macbook AirとEclipse使用してます。
コードを載せます。
まだまだ初心者なので、どの画面の何行目をどう改善したらいいなどと指摘してくださったら嬉しいです。
よろしくお願いします。
入力フォーム(omikuji.jsp)
java
1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<!DOCTYPE html> 3<html lang="ja"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>今日のおみくじ</title> 7 </head> 8 <body> 9 <h1>今日のおみくじ</h1> 10 <form method="POST" action="/first_webapp/OmikujiServlet"> 11 <label for="username">氏名</label> 12 <br> 13 <input type="text" name="username"> 14 <br> 15 <br> 16 <button type="submit">占う!</button> 17 </form> 18 </body> 19</html> 20
サーブレット(OmikujiServlet.java)
java
1pakege test 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletException; 9import javax.servlet.annotation.WebServlet; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13 14/** 15 * Servlet implementation class OmikujiServlet 16 */ 17public class OmikujiServlet extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 public OmikujiServlet() { 21 super(); 22 } 23 24 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 25 String username = request.getParameter("username"); 26 27 String[] omikuji_results = {"大吉", "吉", "中吉", "小吉”, 末吉", "凶"}; 28 String omikuji_result = omikuji_results[(int)(Math.random() * 6)]; 29 30 //入力チェック 31 List<String> errors = new ArrayList<String>(); 32 33 if (username == null || username.equals("")) { 34 errors.add("名前を入力してください。"); 35 } 36 37 if (errors.size() > 0) { 38 request.setAttribute("errors", errors); 39 40 } else { 41 request.setAttribute("username", username); 42 request.setAttribute("omikuji_result", omikuji_result); 43 } 44 45 // ビューとなるJSPを指定して表示する 46 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/omikuji_result.jsp"); 47 rd.forward(request, response); 48 } 49}
サーブレットのビューとなるJSPファイル(omikuji_result.jsp)
java
1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3<!DOCTYPE html> 4<html lang="ja"> 5 <head> 6 <meta charset="UTF-8"> 7 <title>おみくじの結果</title> 8 </head> 9 <body> 10 <c:choose> 11 <c:when test="${errors != null}"> 12 <h1>入力にエラーがあります。</h1> 13 <ul> 14 <c:forEach var = "error" items="${errors}"> 15 <li><c:out value="${error}"/></li> 16 </c:forEach> 17 </ul> 18 </c:when> 19 <c:otherwise> 20 <h1> おみくじの結果</h1> 21 <p><c:out value="${username}" />さんの今日の運勢は <c:out value="${omikuji_result}" /> です。</p> 22 </c:otherwise> 23 </c:choose> 24 </body> 25</html>
回答2件
あなたの回答
tips
プレビュー