[JavaWeb] 5장 웹 서버 리팩토링, 서블릿 컨테이너와 서블릿의 관계 - 3
6.1.3 로그인/로그아웃 기능 실습
- 로그인/로그아웃 기능 개발
- 로그인 상태이면 상단 메뉴가
로그아웃,개인정보 수정이 나타나야하며 - 로그아웃 상태이면 상단 메뉴가
로그인,회원가입이 나타나야한다. - Hint
-
로그인이 성공하는 경우 다음 코드를 참고해 세션에 로그인 정보 추가
HttpSession session = req.getSession(); session.setAttribute("user", user); -
JSP 에서 세션 데이터 체크 및 JSTL 에서 if/else 분기문 처리
<c:choose> <c:when test="${not empty sessionScope.user}"> [html 구문] </c:when> <c:otherwise> [html 구문] </c:otherwise> </c:choose> -
Session 에 저장된 데이터를 삭제하는 방법 (2개)
HttpSession session = req.getSession(); // 첫 번째 방법 session.removeAttribute("user", user); // 두 번째 방법 session.invalidate();
-
6.1.4 회원 목록 및 개인 정보 수정 보안 강화 실습
- 현재 사용자 목록은 모든 사용자가 보고 수정할 수 있다.
- 사용자 목록조회는 로그인 사용자만 가능하며, 개인 정보 수정은 자신의 정보만 수정 가능해야한다.
-
Hint
세션에 저장된 데이터를 꺼내오고 싶은 경우
HttpSession session = req.getSession(); Object value = session.getAttribute("user"); if (value != null){ User user = (User) value; }
6.1.5 중복 코드 제거
- JSP 파일의 중복을 제거한다
-
Hint
JSP 의
<jsp:inclue page=...>또는<@ include file=...>를 사용해 중복을 제거할 수 있다.
구현 코드 브랜치 : origin/step1-user-completed-no-database