Day 54 - [JSP]로그인 페이지 만들기

2021. 4. 30. 16:56JSP 공부

이번에는 어제에 이어서, 회원가입 한 데이터를 가지고, 로그인 페이지를 만들어 볼 겁니다.

rsorry.tistory.com/187

 

Day53 - [JSP] 회원가입 페이지 만들기

이번에는 JSP 에서 JDBC를 이용하고, 회원가입 하는 페이지를 만들어 봅시다 회원가입 페이지 만들기 회원가입 페이지를 만들기 전에, 한번 생각을 해봅시다. 어떠한 흐름을 가져야 하는지.... 먼

rsorry.tistory.com

 

로그인 페이지 만들기

만들기 전에, 흐름을 생각해 봅시다.

회원가입 되어 있는 정보 (데이터베이스) 에 접근해서, id와 pw가 있다면 로그인에 성공을 하고, 없다면 실패를 합니다.

만약 로그인에 성공을 한다면, 마이 페이지 같은 곳이 나오겠죠? ( 로그아웃 , 회원정보 수정, 회원탈퇴 등등 )

 

로그인을 구현하려면 먼저, 아래와 같이 로그인하는 양식을 만들어 주어야 겠죠?

파일명 : login.jsp

<body>

	<form action="login_ok.jsp" method="post">
		아이디:<input type="text" name="id"><br/>
		비밀번호:<input type="password" name="pw"><br/>
		<input type="submit" value="로그인"><br/>
	</form>

</body>

아이디와 비밀번호를 입력하고, 로그인을 누르면, login_ok.jsp 로 이동을 시켜 줍니다.

 

login_ok.jsp 에서는 입력받은 아이디와 비밀번호를 바탕으로 데이터를 찾아 주면 되겠죠?

아이디와 비밀번호가 같이 일치하는게 있다면, 데이터가 있다는거고, 로그인에 성공 했다는 겁니다.

 

파일명 : login_ok.jsp

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");

	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
    // DB연결에 필요한 변수 선언
	String url = "jdbc:oracle:thin:@localhost:1521/XEPDB1";
	String uid = "JSP";
	String upw = "JSP";
	
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	
	String sql = "select * from members where id = ? and pw = ?";
	
	try{
		// 드라이버 호출
		Class.forName("oracle.jdbc.driver.OracleDriver");
		
		// conn 생성
		conn = DriverManager.getConnection(url, uid, upw);
		
		// pstmt 생성
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, id);
		pstmt.setString(2, pw);
		
		// sql실행
		rs = pstmt.executeQuery();
		
		if(rs.next()){ // 로그인 성공(인증의 수단 session)
			id = rs.getString("id");
			String name = rs.getString("name");
		
			session.setAttribute("user_id", id);
			session.setAttribute("user_name", name);
			
			response.sendRedirect("login_welcome.jsp"); // 페이지이동
			
		} else{ // 로그인 실패
			response.sendRedirect("login_fail.jsp"); // 실패 페이지
		}
	} catch(Exception e){
		e.printStackTrace();
		response.sendRedirect("login.jsp"); // 에러가 난 경우도 리다이렉트
	} finally{
		try{
			if(conn != null) conn.close();
			if(pstmt != null) pstmt.close();
			if(rs != null) rs.close();
		} catch(Exception e){
			e.printStackTrace();
		}
	}
 %>

그리고, 로그인에 성공했다면, session을 만들어 줍시다. ( 인증용 세션 )

만약, 코드 실행중 에러가 난다면, 다시 login.jsp 로 넘겨주면 되겠네요

 

로그인에 성공하면, login_welcome.jsp 로 이동을 합니다.

로그인에 실패하면, login_fail.jsp 로 이동을 합니다.

 

파일명 : login_welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String id = (String)session.getAttribute("user_id");
	String name = (String)session.getAttribute("user_name");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%=id %>(<%=name %>)님 안녕하세요

	<a href="logout.jsp">로그아웃</a><br/>
	<a href="getInfo.jsp">정보수정</a><br/>
	<a href="delete_ok.jsp">회원탈퇴</a><br/>
	
</body>
</html>

※ 아직, 로그아웃 / 정보수정 / 회원탈퇴는 미구현인 상태 입니다.

 

파일명 : login_fail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h2>아이디와 비밀번호를 확인하세요</h2>
	
	<a href="login.jsp">다시 로그인하기</a>

</body>
</html>

로그인에 실패하면, 다시 로그인을 할 수 있도록 링크를 걸어주면 편할 거 같죠?

 

그리고, 로그아웃을 누르게 되면, session을 지워주고, 다시 로그인 페이지로 이동 해주면 될 거 같네요

 

파일명 : logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//인증정보(세션삭제)
	//리다이렉트
	
	session.invalidate();
	response.sendRedirect("login.jsp");
%>

이번에는 이렇게, 로그인 페이지를 만들어 보았습니다.

 

고생하셨습니다

 

다음 글로 이어집니다.

http://rsorry.tistory.com/189 

 

Day54 - [JSP]정보수정 페이지 만들기

이번에는 이전 글 로그인에 이어서 정보수정 페이지를 만들어 볼 겁니다. http://rsorry.tistory.com/188 Day 54 - [JSP]로그인 페이지 만들기 이번에는 어제에 이어서, 회원가입 한 데이터를 가지고, 로그인

rsorry.tistory.com

 

'JSP 공부' 카테고리의 다른 글

Day54 - [JSP]회원탈퇴 구현하기  (0) 2021.04.30
Day54 - [JSP]정보수정 페이지 만들기  (0) 2021.04.30
Day53 - [JSP]회원가입 페이지 만들기  (4) 2021.04.29
Day53 - [JSP]Action Tag  (0) 2021.04.29
Day52 - [JSP]forward  (0) 2021.04.28