-
JSP 로그인 만들기프로그래밍/JSP 2022. 11. 25. 22:55728x90
미리 DB에 사용자 정보를 등록하고 클라이언트에서 입력한 사용자 정보와 비교하여 일치할 경우 로그인 성공과 로그인을 유지하는 로직을 만들어보자.
1. DB table 생성 및 사용자 정보 등록
-- tb_member 테이블 생성 create table tb_user( tb_idx bigint auto_increment primary key, tb_userid varchar(30) not null, tb_userpw varchar(20) not null, tb_name varchar(50) not null );
insert into tb_user(tb_userid, tb_userpw, tb_name) values ('minjae','123456','김민재');
2. 로그인 페이지(login.jsp) 작성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String userid = null; String name = null; String idx = null; if(session.getAttribute("userid") != null){ idx = (String)session.getAttribute("idx"); userid = (String)session.getAttribute("userid"); name = (String)session.getAttribute("name"); } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>로그인</title> </head> <body> <h2>로그인</h2> <% if(userid == null){ %> <form method="post" action="login_ok.jsp"> <p>아이디 : <input type="text" name="userid"></p> <p>비밀번호 : <input type="password" name="userpw"></p> <p><input type="submit" value="로그인"></p> <p>회원이 아니신가요? <a href='./member.jsp'>회원가입</a></p> </form> <% }else{ %> <h3><%=userid%>(<%=name%>)님 환영합니다.</h3> <p> <input type="button" value="정보수정" onclick="location.href='info.jsp'"> <input type="button" value="로그아웃" onclick="location.href='logout.jsp'"> </p> <% } %> </body> </html>
3. 로그인 처리 페이지(login_ok.jsp)
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String userid = request.getParameter("userid"); // minjae String userpw = request.getParameter("userpw"); // 123456 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; String sql = ""; String url = "jdbc:mysql://localhost:3306/aiclass"; String uid = "root"; String upw = "1234"; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(url, uid, upw); if (conn != null) { sql = "select tb_idx, tb_name from tb_user where tb_userid=? and tb_userpw=?"; pstmt = conn.prepareStatement(sql); // 컴파일 pstmt.setString(1, userid); pstmt.setString(2, userpw); rs = pstmt.executeQuery(); if(rs.next()){ // 로그인 성공 session.setAttribute("userid", userid); session.setAttribute("idx", rs.getString("tb_idx")); session.setAttribute("name", rs.getString("tb_name")); %> <script> alert('로그인되었습니다.'); location.href="login.jsp"; // 로그인 페이지로 이동 </script> <% }else{ // 로그인 실패 %> <script> alert('아이디 또는 비밀번호를 확인하세요'); history.back(); // 그 전 패이지를 기억하고 전 패이지로 이동 </script> <% } } } catch (Exception e) { e.printStackTrace(); } %>
select tb_idx, tb_name from tb_user where tb_userid=? and tb_userpw=?
DB에서 사용자를 조회하여 만족하는 사용자가 존재할 경우 사용자의 정보를 이용하여 세션을 생성하고, 사용자가 존재하지 않을 경우 뒤로돌아가게된다.
4. 로그아웃 페이지(logout.jsp) 작성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% session.invalidate(); // 세션 제거 %> <script> alert('로그아웃 되었습니다'); location.href='login.jsp'; </script>
로그인 성공시, 유저 사용자를 세션에 저장하여 로그인 상태를 유지한다.
로그아웃 버튼 클릭시, 세션을 제거하한다.
728x90'프로그래밍 > JSP' 카테고리의 다른 글
Java Beans 활용하여 로그인 만들기(1) (0) 2022.11.27 JSP 회원가입 만들기 (0) 2022.11.26 AJAX (0) 2022.11.22 세션(session) (0) 2022.11.21 쿠키(cookie) (0) 2022.11.18