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");
%>
반응형