EL
Expression Language의 약자
JSP 2.0에서 새롭게 추가된 스크립트 언어
기존의 Script tag의 표현식(<%= 정보 %>) tag에서 업그레이드된 버전 ( ${ 정보 } )
[ 주요 특징 ]
1) JSP 속성영역 (request, response, session, application) 저장된 속성 객체의 property를 출력한다
2) 리터럴 데이터, 다양한 연산결과 출력이 가능하다
3) JSTL과 연동이 가능하다
JSP 내장객체 종류
- pageContext : 다른 내장 객체를 생성하는 역할
- pageScope : JSP가 Servlet으로 변환되었을 때, Serlvet 객체 자신을 의미 (=this)
- requestScope : request 객체에 접근하기 위한 역할
- sessionScope : session객체에 접근하기 위한 역할
- applicationScope : application 객체 (ServletContext 객체)에 접근하기 위한 역할
[ 유효범위 ]
request < session < application(ServletContext)
- request의 유효범위 : response 할 때까지
- session의 유효범위 :
1) 로그아웃(서버에서 session.invalidate() ) 시 소멸
2) 클라이언트(브라우저) 종료 시 소멸
3) 지정한 session timeout까지 재접속이 없을 경우 소면
- application(ServletConext) : 웹 어플리케이션 서비스가 종료될 때까지 유효
EL 에서의 파라미터 제어 객체
- param = request.getParameter();
- paramValues = request.getParameterValues();
<body>
이름입력:
<form action="el_1.jsp" method="get">
<input type="text" name="userName">
<input type="submit">
</form>
</body>
<%
if(request.getParameter("userName")== null){
%>
<jsp:forward page="el_1.html"/>
<%
}
%>
사용자가 전송한 userName 출력<br>
1-1) jsp scriptlet 사용:
<%out.println(request.getParameter("userName")); %>
<br>
1-2) jsp 표현식 사용:
<%=request.getParameter("userName") %>
<br>
2) EL 내장객체 param을 사용:
${param.userName }
--- 연산자 --- <br>
\${3 + 4} ==> ${3 + 4}<br><!-- \를통해 글자그대로 출력하게했다. -->
\${5 / 4} ==> ${5 / 4}<br> <!-- ${5 div 4 } -->
\${5 % 4} ==> ${5 % 4}, ${5 mod 4 }<br>
\${5 > 4} ==> ${5 > 4}, ${5 gt 4}, ${5 lt 4 }<br>
\${5 >= 4} ==> ${5 >= 4}, ${5 ge 4}, ${5 le 4 }<br>
\${5 > 4 and 3 > 2} ==> ${5 > 4 and 3 > 2},${5 > 4 or 3 > 2} <br><!-- 관계연산자 -->
<!-- 삼항연산자 -->
\${5 >= 4?10:10+5} ==> ${5 >= 4?10:10+5}
-- 내장객체-- <br>
<%
request.setAttribute("aa", "air");
session.setAttribute("bb", "burger");
application.setAttribute("cc", "cat");
%>
* 생존범위 관련 내장객체 출력 * <br>
jsp: <%=request.getAttribute("aa") %> EL: ${requestScope.aa }, ${aa }<br>
jsp: <%=session.getAttribute("bb") %> EL: ${sessionScope.bb }<br>
jsp: <%=application.getAttribute("cc") %> EL: ${applicationScope.cc }<br>
<br>
jsp의 header : <%=request.getHeader("host") %><br>
EL의 header : ${header.host}, ${header["host"]}<br>
* 컬렉션 객체 값 출력 * <br>
<%
ArrayList<String> list = new ArrayList<>();
list.add("치킨버거");
list.add("새우버거");
list.add("불고기 버거");
request.setAttribute("list", list);
ArrayList<String> list2= new ArrayList<>();
list2= (ArrayList)request.getAttribute("list");
out.println(list2.get(1));
%>
<br>
EL로 출력: ${list[0]}, ${list[1]}
-- HTML문서자료 받기-- <p/>
<a href="el_2.html">el_2 html 호출</a><br>
이름: ${param.irum } ${param["irum"] }<br><!-- 단일값이어서 param. -->
성격: ${paramValues.sung[0]} -- ${paramValues.sung["1"]}<!-- 배열이어서 paramValues[] -->
<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>
<input type="submit">
</form>
https://creamilk88.tistory.com/117
[JSP] EL / JSTL 표현식 한 방에 정리 ! (문법과 사용방법)
EL과 JSTL을 사용하는 이유? 1. design tool에서는 jsp 코드가 깨질 수 있다. [ EL ] EL 이란? Expression Language의 약자 JSP 2.0에서 새롭게 추가된 스크립트 언어 기존의 Script tag의 표현식() tag에서 업그레이드
creamilk88.tistory.com
https://hailey-v.tistory.com/37
[EL&JSTL] EL(Expression Language)이란? EL의 개념
https://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html Expression Language - The Java EE 6 Tutorial Chapter 6Expression Language This chapter introduces the Expression Language (also referred to as the EL), which provides an important mechanism for enabl
hailey-v.tistory.com