[JSP] 쇼핑몰 관리페이지 만들기 연습-8

🐷Jinie (juniorDeveloper)·2020년 10월 28일
0

JSP/MVC/SPRING

목록 보기
15/81

로그인페이지 만들기

1. session (세션)

  • 서버에 저장
  • 개인, 웹 브라우저당 1개씩 생성되어 웹 컨테이너에 저장된다.
  • 웹 브라우저와 웹 서버의 상태 유지가 훨씬 안정적이고 보안상의 문제 해결가능.
  • 세션의 값을 보낼 때는
	session.setAttribute("id", "1234");	
    //("저장할 변수명","변수에 저장할 값")
  • 세션의 값을 받을 때는
String id = (String) session.getAttribute("id");
  • 세션 속성 제거
1. session.removeAttribute("id");
2. 공백을 대입
  • 세션의 모든 속성 제거
session.invalidate()

2-1. 기본 로그인페이지

[login.jsp]

form을 사용하여 submit을 누르면 action=login_ok.jsp로 값을 넘기도록 설정한다.

[login_ok.jsp]


  • login.jsp 에서 받아온 값을 String으로 받고,
    만들어둔 테이블에서 select 쿼리를 적용한다.
  • where조건절을 넣어서 만약, select할 값이있다면
    if(rs.next()) 접속성공하고 session에 값을 넣고
    아니면else 접속실패를 만든다. -->이후 다시 로그인페이지로 복귀
  • [list.jsp]파일에 로그인성공시 session id가 있으면 열리는 코드를 넣는다.

2-2. 로그인페이지 보안강화 (id/pwd 따로 비교하기)

  • id를 넣어서 값이 있는경우 pwd를 비교하도록 작성
  • id값이 if(rs.next())를 했을 때, 값이 없으면 일치하는 id가 없음을 안내하고,
    id값이 있을경우 그때, pwd를 비교한다.

2-3. JavaScript 넣어서 실패, 성공 알림창 만들기

  • script tag안에 alert창을 만들고
    location.href를 이용해 다시 로그인창으로 이동하도록 만든다.
  • 만약 id는 있는데 비밀번호가 틀렸다면, id값은 초기화 되지 않고 pw만 다시 입력하는 로그인창으로 돌아가도록 설정한다.


  • login.jsp에 id값이 웹에서 받아오는 값이 있을경우 input value에 id를 넣어주고
    login_ok.jsp에서는 pwd가 틀린 조건문 안에 script location.href를 ?id=<%=변수명%>으로 값을 넘겨주는 주소를 넘겨준다.
  • 결과적으로 alert창에서 "비밀번호를 확인해주세요" 메시지를 알림창 출력한 후,
    로그인 페이지로 돌아가면 input id value에 id값이 자동으로 들어간다.
    만약, id값도 틀릴경우 웹에서 넘겨주는 값이없고 그럴경우 id도 공백으로 처리한다.

3. 로그아웃

  • 세션의 모든 속성을 삭제하고 list.jsp로 넘어가도록 설정한다.

4. 쇼핑몰페이지에 적용해보기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 쇼핑몰 회원관리 </title>
<link rel="stylesheet" href="./basic.css" />
</head>
<body>
	<header id=header>
		<h2>쇼핑몰 회원관리 ver1.0</h2>
	</header>
	<nav id=index>
<%
	String custid="";
	if(session.getAttribute("id") != null){
		custid = (String)session.getAttribute("id");
	}
%>
		<a href=form.jsp>회원등록</a> &nbsp; &nbsp; &nbsp;
		<a href=guest_list.jsp>방문자목록 </a> &nbsp; &nbsp; &nbsp;
<% 	
	if(custid.equals("admin")){
%>
		<a href=member_list.jsp>회원목록 조회/수정</a> &nbsp; &nbsp; &nbsp;
		<a href=money_list.jsp>회원 매출 조회 </a> &nbsp; &nbsp; &nbsp;
		<a href=product.jsp>상품등록 </a> &nbsp; &nbsp; &nbsp;
		<a href=product_list.jsp>상품목록 </a> &nbsp; &nbsp; &nbsp;
		<a href=logout.jsp>로그아웃</a> &nbsp; &nbsp; &nbsp;
<% 
	}else{
%>	
		<a href=login.jsp>로그인</a> &nbsp; &nbsp; &nbsp;
<%		
	}
%>	
	<a href=index.jsp>홈으로</a> &nbsp; &nbsp; &nbsp;
	</nav>



  • session.getAttribute 할 값이 없어서 null일경우 .equals 를 바로 적용하면 에러.
  • 따라서 null값 처리를 먼저 해준다.
String custid="";
	if(session.getAttribute("id") != null){
		custid = (String)session.getAttribute("id");
	}
  • 이런식으로 null이 아닐경우 session값을 받아주고,
    null일경우 문자열 공백처리를 진행한다.
  • 그 다음 값을 비교해 if문을 통해 메뉴를 선택적으로 노출한다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글