본문 바로가기
코딩공부/JSP,Servlet

내가볼려고 정리하는 EL 1.EL이란?

by 달빗슈 2021. 1. 27.

 

EL(Expression Language)

Expression Language(표현 언어)라 하며 < %= value%>, out.print(value)와 같이
JSP 화면에 표현하고자 하는 코드를 ${ value }의 형식으로 작성

 

1. 기존 Scriptlet을 이용하는 방식으로 각 객체에 담겨있는 데이터를 출력

<body>
	학원명 : <%= academy %> <br>
	강의장 : <%= classRoom %> <br>
	강사 :  <%= teacher.getName() %>, <%= teacher.getAge() %>, <%= teacher.getGender() %> <br><br>
	
	수강생 정보
	<ul>
		<li>이름 : <%= student.getName() %></li>
		<li>나이 : <%= student.getAge() %></li>
		<li>성별 : <%= student.getGender() %></li>
		
	</ul>
    </body>

2. EL을 이용하는 방식으로 request, session 객체에 담겨있는 데이터를 출력

- EL은 Scriptlet과 다르게 getter를 사용하지 않고 변수명으로 직접 접근하는것 같아 보이지만,
내부적으로 해당 객체의 getter를 자동으로 할당하여 저장된 값을 읽어온다.
- EL은 request, session 등 jsp내장 객체를 구분하지 않아도 자동으로 입력된 속성명(키값)을 
검색해서 존재하는 경우 값을 가져온다.
- page -> request -> session -> application 순서로 해당 속성을 찾아서 값을 가져온다 

	학원명 : ${academy}<br>
	강의장 : ${classRoom} <br>
	<!-- 내부적으로 Person 클래스 getter 메소드를 호출한다.(@Getter 지우고 확인해보기) -->
	강사 :  ${teacher.name}, ${teacher.age}, ${teacher.gender} <br><br>
	
	수강생 정보
	<ul>
		<li>이름 : ${student.name}</li>
		<li>나이 : ${student.age}</li>
		<li>성별 : ${student.gender}</li>
	</ul>	

 

3. EL 사용 시 내장 객체에 저장된 속성명이 같은 경우

scope : ${scope}

 

4. 특정 내장 객체에 저장된 속성 다루기

<%
		//page Scope에 데이터를 저장
		pageContext.setAttribute("scope", "page 영역");
	%>
	<!-- 여러 스코프에 동일한 속성을 저장했다면, 키 값 충돌이 의심되면 명시적으로 스코프를 지정해야한다. -->
	pageScope : ${ scope } 또는 ${ pageScope.scope } <br>
	requestScope : ${ requestScope.scope } <br>
	sessionScope : ${ sessionScope.scope } <br>
	applicationScope : ${ applicationScope.scope }

 

5. 헤더에 접근하기

- scriptlet을 이용하는 방식

Host : <%= request.getHeader("host") %> <br>
User-Agent : <%= request.getHeader("User-Agent") %> <br>

- EL을 이용하는 방식

Host : ${ header.host}<br>
User-Agent : ${header['User-Agent'] } <br>

6. ContextPath 가져오기

-scriptlet을 이용하는 방식

ContextPath : <%= request.getContextPath() %>

-EL을 이용하는 방식

ContextPath : ${ pageContext.request.contextPath }

 

반응형

댓글