JSP 표현식을 대시해 속성 값을 쉽게 출력하기 위한 언어이다. (<%= %> 이 표현식을 대체한다.)
출력 및 반복처리를 태그 기반으로 제공하고, $ (표현식)
으로 사용한다.
JSTL과 함께 하면 더욱 효과적이다. pageScope, requestScope, param, ... 등의 내장객체를 지원한다.
EL에서 param
은 파라미터 값을 가져올 때 사용한다.
JSP Servlet 사용 : <% out.println(request.getParameter("user")); %>
JSP 표현식 사용 : <%=request.getParameter("user") %>
EL 사용 : ${param.user}
하나의 매개변수 이름에 대해 여러 값이 전송되었을 때, 설정한 모든 값을 배열로 가져올 수 있다.
<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"]}
데이터 저장 영역에 따라서 사용하는 객체명이 달라진다.
차별화를 두기 위해 JSP에서의 표현식도 같이 작성하였습니다.
request 범위 내에서 데이터를 저장하고 접근할 수 있다.
request.setAttribute("aa", "하이");
JSP : <%=request.getAttribute("aa") %>
EL : ${requestScope.aa}, ${aa}
여기서 requestScope만 생략이 가능하다!
사용자 세션이 유지되는 동안 데이터를 저장하고 접근할 수 있다.
session.setAttribute("bb", "만나서");
JSP : <%=session.getAttribute("bb") %>
EL : ${sessionScope.bb}
웹 애플리케이션이 실행되는 동안 데이터를 저장하고 접근할 수 있다.
application.setAttribute("cc", "반가워");
JSP : <%=application.getAttribute("cc") %>
EL : ${applicationScope.cc}
헤더(header) 정보를 데이터로 저장하고 관리한다.
헤더 정보를 데이터로 저장하고 관리할 때 배열로 모든 값을 관리할 수 있다.
JSP의 header : <%=request.getHeader("host") %>
EL로 표현 : ${header.host} ${header["host"]}
JSP 개발을 단순화하기 위한 표준태그 라이브러리이다.
빠른 개발, 코드 재사용성, JSP의 스크립트릿을 '최소화' 해서 코드의 난독을 해결할 수 있다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL를 사용하려면 taglib
태그를 이용하여 URI을 따로 지정해줘야 한다.
여기서 prefix
는 JSTL 태그를 사용할 때, 해당 태그들을 식별하기 위해 사용되는 참조명이다.
정확한 비유는 아니지만 자바에서의 객체의 참조명이라고 생각하자.
JSTL에서 set은 변수명을 설정할 때 사용하고, out은 설정한 값들을 출력하기 위해 사용된다.
<c:set var="irum" value="홍길동" scope="page"></c:set>
이름 1 : <c:out value="${irum}"></c:out>