jsp

210319 쇼핑몰 만들기 (로그인 창 구현)

정ㅇr 2021. 3. 19. 11:43
728x90

adminIndex.jsp (로그인 창)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import ="gdu.mall.vo.Manager" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>adminIndex</title>
</head>
<body>
	<h1>adminIndex</h1>
	<!-- 
		- 2가지 화면을 분기
		- 로그인 정보는 Manager자료형 세션변수(sessionManager)를 이용 
		1) 관리자 로그인 폼
		2) 관리자 인증 화면 & 몰 메인페이지
	-->
<%
	if(session.getAttribute("sessionManager") == null) {
%>
		<form action="<%=request.getContextPath()%>/manager/managerLoginAction.jsp" method="post">
			<table border="1">
				<tr>
					<td>ID</td>
					<td><input type="text" name="managerId"></td>
				</tr>
				<tr>
					<td>PW</td>
					<td><input type="password" name="managerPw"></td>
				</tr>
			</table>
			<button type="submit">로그인</button>
			<a href="<%=request.getContextPath()%>/">매니저 등록</a>
		</form>
<%		
	} else {
		Manager manager = (Manager)(session.getAttribute("sessionManager"));
%>
		<div>
			<%=manager.managerName%>님 반갑습니다.
			<a href="<%=request.getContextPath()%>/manager/managerLogoutAction.jsp">로그아웃</a>
		</div>
<%		
	}
%>	
</body>
</html>

Manager.java

package gdu.mall.vo;

public class Manager {
	public int managerNo;
	public String managerId;
	public String managerPw;
	public String managerName;
	public String managerDate;
}

ManagerDao.java

package gdu.mall.dao;
import gdu.mall.vo.Manager;
import java.sql.*;
public class ManagerDao {
	// 로그인 메소드
	public static Manager login(String managerId, String managerPw) throws Exception {
		String sql = "SELECT manager_id, manager_name FROM manager WHERE manager_id=? AND manager_pw=?";
		Manager manager = null;
		Class.forName("org.mariadb.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/mall","root","java1004");
		PreparedStatement stmt = conn.prepareStatement(sql);
		stmt.setString(1, managerId);
		stmt.setString(2, managerPw);
		System.out.println(stmt + " <--login() sql");
		ResultSet rs = stmt.executeQuery();
		if(rs.next()) {
			manager = new Manager();
			manager.managerId = rs.getString("manager_id");
			manager.managerName = rs.getString("manager_name");
		}
		return manager;
	}
}

/manager/managerLoginAction.jsp (로그인 성공하면 나오는 창)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="gdu.mall.vo.Manager" %>
<%@ page import="gdu.mall.dao.ManagerDao" %>
<%
	// 1. 요청 수집(전처리)
	String managerId = request.getParameter("managerId");
	String managerPw = request.getParameter("managerPw");
	System.out.println(managerId+" <-- param managerId");
	System.out.println(managerPw+" <-- param managerPw");
	// 2. 처리
	
	Manager manager = ManagerDao.login(managerId, managerPw);
	if(manager != null) {
		System.out.println("로그인 성공!");
		session.setAttribute("sessionManager", manager);
	}
	
	// 3. 출력 or 재요청(redirect)
	response.sendRedirect(request.getContextPath()+"/adminIndex.jsp");
%>

/manager/managerLogoutAction.jsp (로그아웃할 때 기존 세션을 초기화 시킴)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	session.invalidate(); // 기존의 세션을 초기화(로그인 정보도 사라지게된다 -> 로그아웃)
	response.sendRedirect(request.getContextPath()+"/adminIndex.jsp");
%>
반응형