[Spring] 로그인정보 session저장 / 로그인상태에 따라 링크 주소와 값 바꾸기

DEVRANG·2022년 12월 21일
0

설계 구조

BoardController.java

하는 일: 로그인여부 체크함
* 로그인 되어 있음 : 호출하는 '/board/list'가상주소로 이동하여 게시판 페이지 보여줌
* 로그인 안되어 있음: 'login/login'가상주소 호출하여 로그인 페이지로 이동
* 로그인 체크: 세션객체에 id값 저장되어 있는지 확인

LoginController.java

로그인 페이지 호출(GET)
로그인 과정 처리(POST)

-1. id와 pwd가 일치하는지 확인

 -2-1. id와 pwd가 일치하지 않으면 loginForm.jsp로 이동
 
 -2-2. id와 pwd가 일치하면 
 -1) 세션객체에 id정보 저장
 -2) 아이디 저장버튼 체크박스 체크 유무에 따라 remeberId변수로 쿠키 추가/삭제

로그아웃 과정 처리(GET)
-session.invalidate(); 세션종료
-홈화면 이동(index.jsp)

로그인 상태에 따라 링크 주소와 값 바꾸기

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="loginOutLink" value="${sessionScope.id==null? '/login/login' : '/login/logout'}"/> 
<c:set var="loginOut" value="${sessionScope.id==null? 'Login' : 'Logout'}"/> 
//c:set태그로 el에 담을 변수명 정해주고 링크와 카테고리명 설정 !! 
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
    <title>fastcampus</title>
    <link rel="stylesheet" href="<c:url value='/css/menu.css'/>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.8.2/css/all.min.css"/>    
</head>
<body>
<div id="menu">
	<ul>
	    <li id="logo">fastcampus</li>
	    <li><a href="<c:url value='/'/>">Home</a></li>
	    <li><a href="<c:url value='/board/list'/>">Board</a></li>
	    <li><a href="<c:url value='${loginOutLink }'/>">${loginOut}</a></li>    
        //el표현식으로 경로와 카테고리명 불러오기 
        //로그인/로그아웃 상태에 따라 변함 
	    <li><a href="<c:url value='/register/add'/>">Sign in</a></li>
	    <li><a href=""><i class="fas fa-search small"></i></a></li>
	</ul> 
</div>
<div style="text-align:center">
	<h1>This is HOME</h1>
	<h1>This is HOME</h1>
	<h1>This is HOME</h1>
</div>

boardList.jsp

어느 게시판을 들어가도 로그인 상태에 따라 변화해야하니
사용하는 여러 view페이지에는 다 바꿔줘야 한다

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="loginOutLink" value="${sessionScope.id == null? '/login/login' : '/login/logout' }"/>
<c:set var="loginOut" value="${sessionScope.id == null? 'Login' : 'Logout' }"/>
    
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
    <title>fastcampus</title>
    <link rel="stylesheet" href="<c:url value='/css/menu.css'/>">
</head>
<body>
<div id="menu">
	<ul>
	    <li id="logo">fastcampus</li>
	    <li><a href="<c:url value='/'/>">Home</a></li>
	    <li><a href="<c:url value='/board/list'/>">Board</a></li>
	    <li><a href="<c:url value='${loginOutLink }'/>">${loginOut}</a></li>    
	    <li><a href="<c:url value='/register/add'/>">Sign in</a></li>
	    <li><a href=""><i class="fas fa-search small"></i></a></li>
	</ul> 
</div><div style="text-align:center">
	<h1>This is BOARD</h1>
	<h1>This is BOARD</h1>
	<h1>This is BOARD</h1>
	<h1>This is BOARD</h1>
	<h1>This is BOARD</h1>
</div>
</body>
</html>
profile
완주가 목표인 호랑이

0개의 댓글