Q&A
ログインフォームの作成にて、ログインボタン押下後404エラーが出てしまいます。
恐らく、formのaction属性が違うのかと思うのですが、いろいろ試した結果分からなかったので質問させて頂きました。
ログインができるかのみ先に確認したいため色々と未完成なところが多いコードで申し訳ございません。
以下ソースコードになります。
html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6</head> 7<body> 8 9 <h1>ログイン</h1> 10 <form action="/UserSearch" method="post"> 11 <input type="text" name="userId" required> 12 <input type="password" name="password" required> 13 <input type="submit" value="ログイン"> 14 </form> 15</body> 16</html>
Servlet.java
1package com.example.demo.servlet; 2 3import java.io.IOException; 4 5import com.example.demo.dao.UserDAO; 6import com.example.demo.entity.UserBeans; 7 8import jakarta.servlet.RequestDispatcher; 9import jakarta.servlet.ServletException; 10import jakarta.servlet.annotation.WebServlet; 11import jakarta.servlet.http.HttpServlet; 12import jakarta.servlet.http.HttpServletRequest; 13import jakarta.servlet.http.HttpServletResponse; 14import jakarta.servlet.http.HttpSession; 15 16@WebServlet("/UserSearch") 17public class UserSearch extends HttpServlet{ 18 19 private static final long serialVersionUID = 1L; 20 21 /** 22 * @see HttpServlet#HttpServlet() 23 */ 24 public UserSearch() { 25 super(); 26 // TODO Auto-generated constructor stub 27 } 28 29 /** 30 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 31 */ 32 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 // TODO Auto-generated method stub 34 doGet(request, response); 35 36 } 37 38 /** 39 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 40 */ 41 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 42 // TODO Auto-generated method stub 43 doGet(request, response); 44 45 String userId = request.getParameter("userId"); 46 String password = request.getParameter("password"); 47 48 // login.jspから受け取ったログインIDとpassをビーンズにセット 49 UserBeans ab = new UserBeans(); 50 ab.setUserId(userId); 51 ab.setPassword(password); 52 53 // アカウントの有無を検索 54 // 検索したアカウント情報を取得 55 UserDAO ad = new UserDAO(); 56 UserBeans returnAb = ad.findUser(ab); 57 58 if(returnAb != null) { 59 // セッションにアカウント情報&ロールを登録 60 HttpSession session = request.getSession(); 61 session.setAttribute("user", returnAb); 62 63 RequestDispatcher rd = request.getRequestDispatcher("admin.html"); 64 rd.forward(request, response); 65 66 } else { 67 RequestDispatcher rd = request.getRequestDispatcher("index.html"); 68 rd.forward(request, response); 69 } 70 } 71 72} 73
就職前の自学のため、不足している情報等あるかとは思いますが何卒ご容赦ください。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。