JSP -8

김정현·2024년 6월 14일
0

JSP

목록 보기
9/13

익스프레션 언어(EL 표현식)

연산식
${식}

    <%@ page contentType="text/html; charset=UTF-8" %>
    <%
        pageContext.setAttribute("num", 10);
    %>
    ${100 + 200}<br>
    ${num == 10 ? "숫자 10입니다":"숫자 10이 아닙니다."}

Object로 변수처럼 사용할 수 있음.

EL 식 안에 있는 데이터 이름이 해석 되는 순서

pageContext > request > session > application
(적용 범위가 좁을수록 높은 우선순위를 가진다.)

EL의 내장 객체

속성값을 범위에 따라 조회할 수 있는 객체(map)

마침표(.), 대괄호(['속성명'])

-> 변수명 규칙과 맞지 않을 경우 대괄호 사용

1) pageScope

    <%@ page contentType="text/html; charset=UTF-8" %>
    <%
        application.setAttribute("num", 100);
        request.setAttribute("num", 200);
        pageContext.setAttribute("num", 300);

        pageContext.setAttribute("max-num", 1000);
    %>

    pageContext.num : ${pageScope.num}<br>
    request.num : ${requestScope.num}<br>
    application.num : ${applicationScope['num']}<br>

    max-num : ${pageScope["max-num"]}

2) requestScope

3) sessionScope

4) applicationScope

5) param

-마침표, 대괄호

참고) HttpServletRequest - String getParameter(String name)과 동일 기능

GET 방식 : ?이름=값&이름=값;
POST 방식 : 바디 /application/x-www-form-urlencoded
이름=값&이름=값
-값: url 인코딩 처리된 값

<%@ page contentType="text/html; charset=UTF-8" %>
${param.num1} + ${param.num2} = ${param.num1 + param.num2}

6) paramValues

HttpServletRequest - String[] getParameterValues(String name) 와 동일 기능

7) header : 요청 헤더 조회

    <%@ page contentType="text/html; charset=UTF-8" %>
    User-Agent: ${header['User-Agent']}<br>

참고 ) headerValues는 여러개

    <%@ page contentType="text/html; charset=UTF-8" %>
    User-Agent: ${header['User-Agent']}<br>

    JSESSIONID : ${cookie.JSESSIONID.getValue()}<br>
    JSESSIONID : ${cookie.JSESSIONID.value}

9) initparam

key1 : ${initParam.key1}<br>

10) pageContext

-JSP페이지의 주변 환경에 대한 정보를 제공하는 객체
-다른 내장 객체를 접근할 때 사용 가능 (EL식에서)

URI : ${pageContext.getRequest().getRequestURI()}<br>

단축 버전

URI : ${pageContext.request.requestURI}<br>

익스프레션 언어의 연산자

lt - lesser than : <
gt - greater than : >
le - lesser than and equal : <=
ge - greater than and equal : >=
eq - equal : ==
ne - not equal !=

  • 논리 연산자
    && / AND
    || / OR
    ! / NOT

  • 엠프티 연산자
    ${empty str}

대괄호 연산자와 마침표 연산자

EL식 속성 : 객체 -> 객체의 각 속성명을 접근(getter 호출)
예) ${book.title} -> book.getTitle()
${book['title']}

마침표로 사용하는 경우는 변수명 규칙과 동일하게 적용
-앞에는 숫자 X 예) nums['0']
-특수문자 $, _ 예) num-1 (X) -> 대괄호 연산자 ['num-1']

0개의 댓글