본문 바로가기

Servlet&JSP

Step04_Final (jstl 문법 비교, 로그인navbar)

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>       
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.jsp</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
</head>
<body>
	<jsp:include page="/test_jstl/navbar.jsp"></jsp:include>
	<div class="container">
		
		<!-- 기존 자바 문법 -->
		<%
			//세션 영역에 id 라는 키값으로 저장된 값이 있는지 읽어와 본다. (없으면 null)
			String id=(String)session.getAttribute("id");
		%>
		<%if(id != null){ %>
			<p>
				<a href="${pageContext.request.contextPath }/users/private/info.jsp">${id }</a> 님 로그인중...
				<a href="${pageContext.request.contextPath }/users/logout.jsp">로그아웃</a>
			</p>
		<%}else{ %>
			<a href="${pageContext.request.contextPath }/users/loginform.jsp">로그인</a>
		<%} %>
		
		<!-- jstl 문법 -->
		<c:choose>
			<c:when test="${not empty sessionScope.id }">
				<p>
					<a href="${pageContext.request.contextPath }/users/private/info.jsp">${id }</a> 님 로그인중...
					<a href="${pageContext.request.contextPath }/users/logout.jsp">로그아웃</a>
				</p>
			</c:when>
			<c:otherwise>
				<a href="${pageContext.request.contextPath }/users/loginform.jsp">로그인</a>
			</c:otherwise>
		</c:choose>
		
		<h1>인덱스 페이지 입니다.</h1>
		<ul>
			<li><a href="${pageContext.request.contextPath }/users/signup_form.jsp">회원가입</a></li>
			<li><a href="${pageContext.request.contextPath }/private/study.jsp">회원전용공간(공부)</a></li>
			<li><a href="${pageContext.request.contextPath }/private/game.jsp">회원전용공간(게임)</a></li>
			<li><a href="${pageContext.request.contextPath }/file/list.jsp">자료실</a></li>
			<li><a href="${pageContext.request.contextPath }/cafe/list.jsp">글 목록보기</a></li>
		</ul>
	</div>
</body>
</html>

예시의 jstl 문법의 코드

<c:choose>
    <c:when test="${not empty sessionScope.id }">
        <p>
            <a href="${pageContext.request.contextPath }/users/private/info.jsp">${id }</a> 님 로그인중...
            <a href="${pageContext.request.contextPath }/users/logout.jsp">로그아웃</a>
        </p>
    </c:when>
    <c:otherwise>
        <a href="${pageContext.request.contextPath }/users/loginform.jsp">로그인</a>
    </c:otherwise>
</c:choose>

기존에 사용하던 java jsp 문법

<%
    //세션 영역에 id 라는 키값으로 저장된 값이 있는지 읽어와 본다. (없으면 null)
    String id=(String)session.getAttribute("id");
%>
<%if(id != null){ %>
    <p>
        <a href="${pageContext.request.contextPath }/users/private/info.jsp">${id }</a> 님 로그인중...
        <a href="${pageContext.request.contextPath }/users/logout.jsp">로그아웃</a>
    </p>
<%}else{ %>
    <a href="${pageContext.request.contextPath }/users/loginform.jsp">로그인</a>
<%} %>

사용법만 다를 뿐 같은 로직이다.

 

 

'Servlet&JSP' 카테고리의 다른 글

Step04_Final(cookie)  (0) 2022.08.21
Step04_Final (test_el)  (0) 2022.08.21
Step03_Scope (HttpSession)  (0) 2022.08.19
Step03_Scope (request, response, session 정의 및 메소드 정리)  (0) 2022.08.19
Step02_DB (폼)  (0) 2022.08.19