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 }
반응형
'코딩공부 > JSP,Servlet' 카테고리의 다른 글
JSTL 라이브러리 설치 방법 (0) | 2021.01.28 |
---|---|
내가 볼려고 남기는 JSP 액션태그 (0) | 2021.01.28 |
내가 볼려고 정리하는 EL 3.연산자 (0) | 2021.01.27 |
내가 볼려고 정리하는 EL 2. Param (0) | 2021.01.27 |
servlet 정리 (0) | 2021.01.13 |
댓글