Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

wintertreey 님의 블로그

EL 본문

JSP

EL

wintertreey 2024. 7. 1. 09:34

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

 

'JSP' 카테고리의 다른 글

Redirect 리다이렉트 vs Forward 포워드 방식  (0) 2024.07.02
MVC Model2: DB 연동하기  (0) 2024.07.02
MVC Model2: 인터페이스를 사용한 Controller  (0) 2024.07.01
빌드 관리 도구 maven gradle  (0) 2024.07.01
MVC패턴  (2) 2024.07.01