수업(국비지원)/JSP

[JSP] EL(표현식),JSTL - JSTL, JSTL core 태그[set, remove, out]

byeolsub 2023. 4. 18. 23:55
<c:set> 태그
    : EL에서 사용 할 변수나 자바빈즈를 생성 할 때 사용.
      jsp에서 영역에 속성을 저장할 때 사용하는 setAttribute()메서드와 같은 역할

속성    - var : 변수명 설정
        - value : 변수에 할당 할 값
        - scope : 변수를 생성 할 영역을 지정. page가 기본 값
        - target : 자바빈즈 설정
        - property : 자비빈즈의 속성. 멤버 변수의 값을 지정

<c:remove> 태그
     : 설정한 변수를 제거. removeAttribute() 메서드와 같은 역할

속성    - var : 삭제할 변수명 설정
        - scope : 삭제할 변수의 영역을 지정. 지정하지 않으면 모든 영역의 변수 삭제됨.

 

 📌 JSTL core 태그

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/jstl/jstlcore1.jsp --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL core 태그</title>
</head>
<body>
<h3>속성 관련 태그 : set, remove, out 태그</h3>

<%--
//c.tld의 tag-class가 구동
//var,value,scope라는 속성
	session.Attribute("test","Hello JSTL");과 같은 기능
	세션의 등록을 표현하는 기능
scope="session" 생략 되는 경우 pageContext객체임.
Q?위의 내용으로 해서, 웹페이지에서만 사용가능.왜??
A:
${test} : 영역담당 객체에 저장된 속성 중 이름이 test인 속성의 값을 출력
- 1. pageContext에 등록된 속성 중 test인 속성의 값을 출력하기 때문.
	var(속성)="test"(속성이름)
	value(속성값)="${'Hello JSTL'}"(속성값의 내용)	
 --%>
<c:set var="test" value="${'Hello JSTL'}" scope="session" />
<%-- session.getAttribute("test") --%>
test 속성 : ${sessionScope.test }<br>
test 속성 : <c:out value="${test }"/><br><%-- c:out이 보안상 더안전한 방법. why? --%>
test 속성 : ${test}<br>
<hr>
<%-- session.removeAttribute("test") --%>
<c:remove var="test"/>
test 속성 : ${sessionScope.test }<br>
test 속성 : <c:out value="${test }"/><br>
test 속성 : ${test}<br>
</body>
</html>

 

 

 📌JSTL 태그

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/jstl/jstlcore1.jsp --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL core 태그</title>
</head>
<body>
<h3>속성 관련 태그 : set, remove, out 태그</h3>
<c:set var="test" value="${'Hello JSTL'}" scope="session" />
test 속성 : ${sessionScope.test }<br>
test 속성 : <c:out value="${test }"/><br>
test 속성 : ${test}<br>
<c:remove var="test"/>
test 속성 : ${sessionScope.test }<br>
test 속성 : <c:out value="${test }"/><br>
test 속성 : ${test}<br>
</body>
</html>