現在、動的webプロジェクト開発を志している者です。
JDBCドライバの読み込みで困っており、設定をいじりすぎて(ビルドパスやファセット等)一旦リセットしようと思い、プロジェクトを再作成したところ、アノテーションと別のurlが読み込まれ、最初のページすら表示されなくなってしまいました。初歩的な質問で申し訳ありませんが、ご回答頂けると嬉しいです。
http://localhost:8080/Noun_Management/WEB-INF/classes/servlet/LoginServlet.java
とブラウザでアクセスされているようですが、本来は
http://localhost:8080/Noun_Management/LoginServlet
であるはずです。
java
1package servlet; 2 3import java.io.IOException; 4 5import dao.IdpwDAO; 6import jakarta.servlet.RequestDispatcher; 7import jakarta.servlet.ServletException; 8import jakarta.servlet.annotation.WebServlet; 9import jakarta.servlet.http.HttpServlet; 10import jakarta.servlet.http.HttpServletRequest; 11import jakarta.servlet.http.HttpServletResponse; 12import jakarta.servlet.http.HttpSession; 13import model.LoginUser; 14import model.Result; 15 16/** 17 * Servlet implementation class LoginServlet 18 */ 19@WebServlet("/LoginServlet") 20public class LoginServlet extends HttpServlet { 21 private static final long serialVersionUID = 1L; 22 23 /** 24 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 25 */ 26 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 27 // ログインページにフォワードする 28 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/login.jsp"); 29 dispatcher.forward(request, response); 30 } 31 32 /** 33 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 34 */ 35 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 36 // リクエストパラメータを取得する 37 request.setCharacterEncoding("UTF-8"); 38 String id = request.getParameter("id"); 39 String pw = request.getParameter("pw"); 40 // ログイン処理を行う 41 IdpwDAO iDao = new IdpwDAO(); 42 if (iDao.isLoginOK(id, pw)) { // ログイン成功 43 // セッションスコープにIDを格納する 44 HttpSession session = request.getSession(); 45 session.setAttribute("id", new LoginUser(id)); 46 47 // メニューサーブレットにリダイレクトする 48 response.sendRedirect("/Noun_Management/MenuServlet"); 49 } 50 else { // ログイン失敗 51 // リクエストスコープに、タイトル、メッセージ、戻り先を格納する 52 request.setAttribute("result", 53 new Result("ログイン失敗!", "idまたはpwに間違いがあります。", "/Noun_Management/LoginServlet")); 54 55 // 結果ページにフォワードする 56 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/result.jsp"); 57 dispatcher.forward(request, response); 58 } 59 } 60}
実行環境
java11
pleiades 2021-03
apache tomcat v9.0