JSP EL 그리고 JSTL

유광진·2023년 8월 30일
0

📌 1. EL이란

JSP 표현식을 대시해 속성 값을 쉽게 출력하기 위한 언어이다. (<%= %> 이 표현식을 대체한다.)

출력 및 반복처리를 태그 기반으로 제공하고, $ (표현식) 으로 사용한다.

JSTL과 함께 하면 더욱 효과적이다. pageScope, requestScope, param, ... 등의 내장객체를 지원한다.

📌 2. EL 내장객체 (request.Parameter)

📖 param

EL에서 param 은 파라미터 값을 가져올 때 사용한다.

JSP Servlet 사용 : <% out.println(request.getParameter("user")); %>
JSP 표현식 사용 : <%=request.getParameter("user") %> 
EL 사용 : ${param.user}

📖 paramValues

하나의 매개변수 이름에 대해 여러 값이 전송되었을 때, 설정한 모든 값을 배열로 가져올 수 있다.

<body>
	<form action="el_2.jsp">
		이 름 : <input type="text" name="irum" value="홍길동"><br/>
		성격1 : <input type="text" name="sung" value="원만"><br/>
		성격2 : <input type="text" name="sung" value="가끔 까칠"><br/>
		<br/>
		<input type="submit" />
	</form>
</body>

EL 내장 객체인 paramValue 사용

이름은 ${param.irum} ${param["irum"]}
성격은 ${paramValues.sung[0]} ${paramValues.sung["1"]}

📌 3. EL 내장객체 (Scope)

데이터 저장 영역에 따라서 사용하는 객체명이 달라진다.

차별화를 두기 위해 JSP에서의 표현식도 같이 작성하였습니다.

📖 requestScope

request 범위 내에서 데이터를 저장하고 접근할 수 있다.

request.setAttribute("aa", "하이");
JSP : <%=request.getAttribute("aa") %> 
EL : ${requestScope.aa}, ${aa}

여기서 requestScope만 생략이 가능하다!

📖 sessionScope

사용자 세션이 유지되는 동안 데이터를 저장하고 접근할 수 있다.

session.setAttribute("bb", "만나서");
JSP : <%=session.getAttribute("bb") %> 
EL : ${sessionScope.bb}

📖 applicationScope

웹 애플리케이션이 실행되는 동안 데이터를 저장하고 접근할 수 있다.

application.setAttribute("cc", "반가워");
JSP : <%=application.getAttribute("cc") %> 
EL : ${applicationScope.cc}

📌 4. EL 내장객체 (header, headerValues)

📖 header

헤더(header) 정보를 데이터로 저장하고 관리한다.

📖 headerValues

헤더 정보를 데이터로 저장하고 관리할 때 배열로 모든 값을 관리할 수 있다.

JSP의 header : <%=request.getHeader("host") %>
EL로 표현 : ${header.host} ${header["host"]}

📌 5. JSTL

JSP 개발을 단순화하기 위한 표준태그 라이브러리이다.

빠른 개발, 코드 재사용성, JSP의 스크립트릿을 '최소화' 해서 코드의 난독을 해결할 수 있다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL를 사용하려면 taglib 태그를 이용하여 URI을 따로 지정해줘야 한다.

여기서 prefix 는 JSTL 태그를 사용할 때, 해당 태그들을 식별하기 위해 사용되는 참조명이다.

정확한 비유는 아니지만 자바에서의 객체의 참조명이라고 생각하자.

📖 <JSTL:set>, <JSTL:out>

JSTL에서 set은 변수명을 설정할 때 사용하고, out은 설정한 값들을 출력하기 위해 사용된다.

<c:set var="irum" value="홍길동" scope="page"></c:set>
이름 1 : <c:out value="${irum}"></c:out>
profile
백엔드 개발자 유광진 입니다.

0개의 댓글