SerServletコード package servlet; import java.io.IOException; import java.sql.SQLException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import model.dao.UserDAO; import model.entity.UserBean; /** * Servlet implementation class LoginServlet */ @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // リクエストのエンコーディング request.setCharacterEncoding("UTF-8"); // リクエストパラメータの取得 String id = request.getParameter("id"); // ユーザID String password = request.getParameter("password"); // パスワード String url = "login.jsp"; // 転送用パスを格納する変数 UserDAO dao = new UserDAO(); // UserDAOクラスをインスタンス化 // try-catchで例外処理 try { // UserDAOクラスのcheckLoginメソッドを呼び出してユーザ情報を取得 UserBean user = dao.checkLogin(id, password); // idとpasswordがデータベースに登録されていた場合 if (user != null) { url = "menu.jsp"; // メニュー画面のパス // セッションオブジェクト取得し、セッションスコープに値をセット HttpSession session = request.getSession(); session.setAttribute("user", user); // idとpasswordがデータベースに登録されていなかった場合 } else { //ログイン失敗のメッセージを表示 request.setAttribute("message","ログイン失敗しました。もう一度入力してください。"); url = "login.jsp"; } // 例外キャッチ } catch (ClassNotFoundException | SQLException e) { url = "err.jsp"; // エラーページのパス e.printStackTrace(); } // 転送 RequestDispatcher rd = request.getRequestDispatcher(url); rd.forward(request, response); } }
jspコード <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ログイン画面</title> </head> <body> <div class="main"> <main> <div class="main__imageBox"> <img class="main__image" src="assets/images/seassist_logo.png" alt="ロゴ"> </div> <h2>従業員管理システム</h2> <form action="login" method="post"> <input type="text" name="id" placeholder="userId"><br> <input type="password" name="password" placeholder="password"><br> <br> <input type="submit" value="ログイン"> </form> </main> </div> </body> </html>
Eclipseで従業員管理システムを作っています。
ログイン機能は正常ですがIDまたはパスワードがデータベース上の物と異なる場合「ログイン失敗しました。もう一度入力してください。」とログイン画面に表示させたいのですがjspにどのように記述すればいいでしょうか。
●<span>th:text="${message}"</span>
●のコードを追加しサーブレットに記述のあるelse文(”message”)と結び付けて表示させるように試みましたができませんでした。
初学者の為お手柔らかに教えて頂ければ幸いです。
0 コメント