[목차]
👉🏻
아래 회원관리 화면 구현에서 이어지는 내용입니다. 참고하세요.
01. 로그인 폼에서 아이디, 비밀번호 받기
💡
1️⃣ 로그인 폼 만들기 ➡️ 아이디 : / 비밀번호 : / 로그인버튼
2️⃣ 로그인 버튼 경로 설정
3️⃣ 아이디와 비밀번호를 입력 받아서 출력한다. (login_action.jsp)
4️⃣ 콘솔창 확인
[코드예제] top.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Header --> <div id="header"> 상단 메뉴 <br/><br/> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post"> 아이디 : <input type="text" name="id"> 비밀번호 : <input type="text" name="pw"> <input type="submit" value="로그인버튼"> </form> </div> <!-- End Header -->
[코드예제] login_action.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% request.setCharacterEncoding("euc-kr"); // post방식 한글처리 String id = request.getParameter("id"); String pw = request.getParameter("pw"); System.out.println(id + "<-- id"); System.out.println(pw + "<-- pw"); %>
02. 아이디, 비번 일치 조건 비교
💡
1️⃣ db에 회원 한명이 있다는 가정으로 id, pw, name, level 세팅
2️⃣ 아이디일치, 불일치, 비번불일치, 로그인 성공 조건식 만들기
3️⃣ 콘솔창 확인
[코드예제] login_action.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% request.setCharacterEncoding("euc-kr"); // post방식 한글처리 String id = request.getParameter("id"); String pw = request.getParameter("pw"); System.out.println(id + "<-- id"); System.out.println(pw + "<-- pw"); String dbid = "id001"; String dbpw = "pw001"; String dbname = "홍길동"; String dblevel = "관리자"; if(id.equals(dbid)) { System.out.println("1-1 아이디 일치"); if(pw.equals(dbpw)) { System.out.println("2-1 로그인 성공"); } else { System.out.println("2-2 비번 불일치"); } } else { System.out.println("1-2 아이디 불일치"); } %>
03. session 셋팅 후 index.jsp로 redirect
💡
1️⃣ 로그인 성공 조건식 안에 session 셋팅
2️⃣ index.jsp로 경로 설정
3️⃣ 아이디, 비번 불일치 시 화면 멈춤 확인
4️⃣ 로그인시 index.jsp로 리다이렉트 확인
[코드예제] login_action.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% request.setCharacterEncoding("euc-kr"); // post방식 한글처리 String id = request.getParameter("id"); String pw = request.getParameter("pw"); System.out.println(id + "<-- id"); System.out.println(pw + "<-- pw"); String dbid = "id001"; String dbpw = "pw001"; String dbname = "홍길동"; String dblevel = "관리자"; if(id.equals(dbid)) { System.out.println("1-1 아이디 일치"); if(pw.equals(dbpw)) { System.out.println("2-1 로그인 성공"); session.setAttribute("S_ID", dbid); session.setAttribute("S_NAME", dbname); session.setAttribute("S_LEVEL", dblevel); response.sendRedirect(request.getContextPath()+"/index.jsp"); } else { System.out.println("2-2 비번 불일치"); } } else { System.out.println("1-2 아이디 불일치"); } %>
04. session 데이터 확인
💡
1️⃣ session 데이터 값 가져오기
2️⃣ 서버 재시작 후 초기화면 값 null 콘솔창 확인
3️⃣ 로그인 후 입력 값 출력 콘솔창 확인
[코드예제] top.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% String S_ID = (String)session.getAttribute("S_ID"); String S_NAME = (String)session.getAttribute("S_NAME"); String S_LEVEL = (String)session.getAttribute("S_LEVEL"); System.out.println(S_ID + "<--S_ID"); System.out.println(S_NAME + "<--S_NAME"); System.out.println(S_LEVEL + "<--S_LEVEL"); %> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Header --> <div id="header"> 상단 메뉴 <br/><br/> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post"> 아이디 : <input type="text" name="id"> 비밀번호 : <input type="text" name="pw"> <input type="submit" value="로그인버튼"> </form> </div> <!-- End Header -->
05. 로그인 전과 후 화면 전환
💡
조건식으로 로그인 전, 후 화면 전환
[코드예제] top.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% String S_ID = (String)session.getAttribute("S_ID"); String S_NAME = (String)session.getAttribute("S_NAME"); String S_LEVEL = (String)session.getAttribute("S_LEVEL"); System.out.println(S_ID + "<--S_ID"); System.out.println(S_NAME + "<--S_NAME"); System.out.println(S_LEVEL + "<--S_LEVEL"); %> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Header --> <div id="header"> 상단 메뉴 <br/><br/> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <% if(S_LEVEL == null) { %> <!-- 로그인 전 화면 시작 --> <form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post"> 아이디 : <input type="text" name="id"> 비밀번호 : <input type="text" name="pw"> <input type="submit" value="로그인버튼"> </form> <!-- 로그인 전 화면 끝 --> <% } else { %> <!-- 로그인 후 화면 시작 --> id001 / 홍길동님 / 관리자 로그인 중 <a href="#">로그아웃</a> <!-- 로그인 전 화면 끝 --> <% } %> </div> <!-- End Header -->
06. 로그아웃
💡
1️⃣ 로그아웃 경로 설정
2️⃣ 세션 종료
3️⃣ 로그아웃 처리 후 index.jsp로 이동
[코드예제] top.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% String S_ID = (String)session.getAttribute("S_ID"); String S_NAME = (String)session.getAttribute("S_NAME"); String S_LEVEL = (String)session.getAttribute("S_LEVEL"); System.out.println(S_ID + "<--S_ID"); System.out.println(S_NAME + "<--S_NAME"); System.out.println(S_LEVEL + "<--S_LEVEL"); %> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Header --> <div id="header"> 상단 메뉴 <br/><br/> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <% if(S_LEVEL == null) { %> <form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post"> 아이디 : <input type="text" name="id"> 비밀번호 : <input type="text" name="pw"> <input type="submit" value="로그인버튼"> </form> <% } else { %> id001 / 홍길동님 / 관리자 로그인 중 <a href="<%= request.getContextPath() %>/login/logout.jsp">로그아웃</a> <% } %> </div> <!-- End Header -->
[코드예제] logout.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% session.invalidate(); // 세션종료 %> <script type="text/javascript"> alert('로그아웃'); location.href='<%= request.getContextPath() %>/index.jsp'; </script>
07. 권한별 메뉴변경(조건문)
💡
1️⃣ 로그인 전 메뉴 1개 (회원가입)
2️⃣ 관리자 권한 메뉴 4개 (회원가입, 회원조회, 상품등록, 상품조회)
3️⃣ 판매자 권한 메뉴 3개 (회원가입, 상품등록, 상품조회)
4️⃣ 구매자 권한 메뉴 2개 (회원가입, 상품조회)
[코드예제] top.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% String S_ID = (String)session.getAttribute("S_ID"); String S_NAME = (String)session.getAttribute("S_NAME"); String S_LEVEL = (String)session.getAttribute("S_LEVEL"); System.out.println(S_ID + "<--S_ID"); System.out.println(S_NAME + "<--S_NAME"); System.out.println(S_LEVEL + "<--S_LEVEL"); %> <!-- Begin Wrapper --> <div id="wrapper"> <!-- Begin Header --> <div id="header"> 상단 메뉴 <br/><br/> /* <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> */ <% if(S_LEVEL == null) { %> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <br/><br/> <form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post"> 아이디 : <input type="text" name="id"> 비밀번호 : <input type="text" name="pw"> <input type="submit" value="로그인버튼"> </form> <% } else { %> <% if(S_LEVEL.equals("관리자")) { %> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="<%= request.getContextPath() %>/user/user_list.jsp">02 회원 조회</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <% } else if(S_LEVEL.equals("판매자")) { %> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="#">03 상품 등록</a> <a href="#">04 상품 조회</a> <br/><br/> <% } else if(S_LEVEL.equals("구매자")) { %> <a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01 회원 가입</a> <a href="#">04 상품 조회</a> <br/><br/> <% } %> id001 / 홍길동님 / 관리자 로그인 중 <a href="<%= request.getContextPath() %>/login/logout.jsp">로그아웃</a> <% } %> </div> <!-- End Header -->
08. 경고창 로그인 처리
💡
1️⃣ 아이디 불일치, 비번 불일치, 로그인 성공 시 alert 창 활성화
2️⃣ 각각 조건식에 alert 과 index 경로로 이동되게 설정한다.
[코드예제] login_action.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <% request.setCharacterEncoding("euc-kr"); // post방식 한글처리 String id = request.getParameter("id"); String pw = request.getParameter("pw"); System.out.println(id + "<-- id"); System.out.println(pw + "<-- pw"); String dbid = "id001"; String dbpw = "pw001"; String dbname = "홍길동"; String dblevel = "관리자"; // alert 메세지 String messeage = null; if(id.equals(dbid)) { System.out.println("1-1 아이디 일치"); if(pw.equals(dbpw)) { System.out.println("2-1 로그인 성공"); session.setAttribute("S_ID", dbid); session.setAttribute("S_NAME", dbname); session.setAttribute("S_LEVEL", dblevel); /* response.sendRedirect(request.getContextPath()+"/index.jsp"); */ messeage = "로그인 성공"; } else { System.out.println("2-2 비번 불일치"); messeage = "비밀번호 불일치"; } } else { System.out.println("1-2 아이디 불일치"); messeage = "아이디 불일치"; } %> // 자바스크립트를 통한 alert, location 처리 <script> alert('<%= messeage %>'); location.href='<%= request.getContextPath() %>/index.jsp'; </script>
tag : #jsp #java #session #post #get #javascript #조건문 #경로
Uploaded by N2T