EL 표현 식

역할 영역 이 엘 을 사용 할 때 기본 값 은 네 개의 역할 영역 을 일정 순서 로 검색 하여 가장 먼저 찾 은 변수 값 을 표시 합 니 다.
${username}이라는 정규 표현 식 이 있 으 면 pageContext.getAttribute(username)->request.getAttribute(username)->session.getAttribute(username)->application.getAttribute(username)를 순서대로 호출 합 니 다.비어 있 지 않 은 값 을 찾 으 면 바로 돌아 갑 니 다.
이렇게 하면 확실히 우리 의 조작 에 편리 하지만 이에 따라 또 다른 문제 가 발생 했 습 니 다.만약 에 pageContext 와 request 에 동명 의 변수 가 있다 면 request 중의 변 수 를 얻 으 려 면 어떻게 해 야 합 니까?이것 은 엘 표현 식 에 작용 역 의 개념 을 도입 해 야 한다.
${pageScope.username}

${requestScope.username}
        

우 리 는 13-04 라 는 응용 프로그램 에 직접 방문 하여 엘 표현 식 이 지원 하 는 모든 대상 을 볼 수 있 습 니 다.
다음은 각 역할 영역 대상 에 대해 설명 하 겠 습 니 다.
시계. 13.1. 엘 의 역할 영역
el 의 역할 영역 대응 관계
pageContext(1)
현재 페이지 의 pageContext 대상
pageScope
페이지 역할 영역의 데 이 터 를 맵 대상 으로 비 추기
requestScope(2)
request 역할 필드 의 데 이 터 를 map 대상 으로 표시 합 니 다.
sessionScope
session 역할 필드 의 데 이 터 를 map 대상 으로 표시 합 니 다.
applicationScope
응용 프로그램 역할 영역의 데 이 터 를 맵 대상 으로 비 추기
param
대응 하 는 request.getParameter()
paramValues(3)
대응 하 는 request.getParameterValues()
header(4)
대응 하 는 request.getHeader()
headerValues
대응 하 는 request.getHeaderValues()
cookie(5)
대응 하 는 request.getCookies()
initParam(6)
대응 ServletContext.getInitParamter()
(1)
예 에서${pageContext.request.contextPath}은 request.getContextPath()의 값 을 되 돌려 줍 니 다.이 예 에서/13-04 입 니 다.우 리 는 jsp 의 절대 경 로 를 맞 추 는 데 자주 사용 합 니 다.여기 있 는${pageContext.request.contextPath}은 특수 한 용법 으로${request.contextPath}의 형식 으로 대체 할 수 없습니다.
(2)
pageScope,requestScope,session Scope,applicationScope 는 모두 Map 형 변수 로 볼 수 있 습 니 다.그 중의 데 이 터 를 호출 하면${pageScope.name}또는${pageScope[name]}의 형식 을 사용 할 수 있 습 니 다.이 두 가지 방법 은 등가 입 니 다.어떤 경우 에는${pageScope["content-type"]}만 사용 할 수 있 습 니 다.여 기 는${pageScope.content-type}으로 쓸 수 없습니다.jsp 에서 연결 문자(-)를 처리 하지 못 하면 오류 가 발생 할 수 있 습 니 다.
(3)
주의해 야 할 것 은${paramValues.name}은 문자열 배열 을 얻 었 습 니 다.그 중 하 나 를 얻 으 려 면${paramValues.name[0]}을 사용 하여 배열 의 색인 을 지정 해 야 합 니 다.이것 은 아래${header Values.name}과 비슷 합 니 다.
(4)
${header.name}은 http 요청 의 header 인 자 를 가 져 옵 니 다.실제 작업 에 서 는 이 데 이 터 를 거의 사용 하지 않 습 니 다.예 에서 Host 를 사용 하 는 것 은 ip 과 포트 번 호 를 포함 하여 접근 을 요청 하 는 호스트 주 소 를 말 합 니 다.한편,Refer 는 재 미 있 습 니 다.만약 에 사용자 가 하이퍼링크 를 통 해 뛰 어 오 면 Refer 는 지난번 에 방문 한 페이지 의 주 소 를 저장 할 것 입 니 다.우 리 는 이 를 통 해 어떤 사용자 가 어디에서 전 환 했 는 지 통계 할 수 있 습 니 다.
(5)
${cookie.name}은 클 라 이언 트 에 jsp 로 쿠키 를 보 내 는 등 쿠키 에 대응 하 는 대상 을 얻 을 수 있 습 니 다
Cookie cookie = new Cookie("username", "Username in cookie");
response.addCookie(cookie);
                
username 이라는 이름 을 만 들 고'Username in cookie'라 는 값 의 Cookie 대상 을 만 든 다음 클 라 이언 트 에 보 냅 니 다.그리고 우 리 는${cookie.username}을 사용 하여 이 쿠키 를 얻 을 수 있 습 니 다.${cookie.username}은 쿠키 이름 을 얻 고${cookie.username.value}는 쿠키 값 을 얻 을 수 있 습 니 다.
(6)
ServletContext.getInitParamter()는 응용 초기 변 수 를 말 합 니 다.이 변 수 는 모두 웹.xml 에 정의 되 어 있 습 니 다
<context-param>
    <param-name>username</param-name>
    <param-value>username with context param</param-value>
</context-param>
                
${initParam.username}은 이 변 수 를 얻 을 수 있 습 니 다.
이상 은 무조건 외 우 는 것 이 므 로 실제 사용 할 때 뒤 져 보 는 것 을 권장 합 니 다.프 리 젠 테 이 션 코드 는 모두 13-04 에 두 고 파 람 과 쿠키 를 얻 기 위해 서 는 맨 아래 연결 을 클릭 해 야 합 니 다.
연산 자
el 표현 식 에 서 는 자바 의 모든 조작 자 를 지원 하고 확장 도 있 습 니 다.다음은 간략하게 대 조 를 해 보 겠 습 니 다.
시계. 13.2. 가감 승제 사 칙 연산
기호 설명
+
더 하 다
-
덜다
*
타다
/또는 div
제외 하 다.
%혹은 mod
나머지 를 구하 다
시계. 13.3. 비교 연산
기호 설명
==또는 eq
같 음(equals)
!=혹시
같 지 않 음(같 지 않 음)
<또는 lt
보다 작 음(less than)
>또는 lt
보다 크다
<=또는 le
이하(less than or equals)
>=또는 ge
이상(greater than or equals)
시계. 13.4. 논리 연산
기호 설명
&&또는
논리 와
||또는
논리
!혹시
반대 하 다
시계. 13.5. 특수 연산
기호 설명
empty
null 이나 빈 문자열 인지 여부
? :
삼원 연산 자
아래 에 있 는 모든 연산 자 는 결 과 를 표시 합 니 다.참고 로 jsp 에${name}을 표시 하고 싶 으 면 jsp 가 엘 로 계산 하지 못 하 게\${name}이 라 고 쓸 수 있 습 니 다.마지막 으로 표 시 된 결 과 는${name}입 니 다.
 전재:http://www.family168.com/tutorial/jsp/html/jsp-ch-13.html

좋은 웹페이지 즐겨찾기