반응형

#48강 EL의 데이터 저장소

- 서버상에 존재하는 저장소는 크게 4가지 존재한다. (page, request, session, application)

- page객체에 담아서 EL을 통해 사용할 수 있다.

//
<%
pageContext.setAttribute("aa", "hello");
%>

// 사용 시
${aa}로 사용

// 적용된 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<%
pageContext.setAttribute("aa", "hello");
%>
<body>
	<%=request.getAttribute("result") %>입니다. 
	${result}입니다.<br>
	${names[0]}
	${names[1]}<br>
	${notice.title}<br>
	${aa}
	
</body>
</html>

 

- 특정 내장 객체 내에 존재하는 값만 꺼내고 싶은 경우 Scope사용. (pageScope, requestScope, sessionScope, applicationScope)

- 중복되는 result가 존재하는 경우 Scope를 아래와 같이 사용하여 출력한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<%
pageContext.setAttribute("result", "hello");
%>
<body>
	<%=request.getAttribute("result") %>입니다. 
	${result}입니다.<br>
	${names[0]}
	${names[1]}<br>
	${notice.title}<br>
    
	${result} // hello가 출력된다.
	${requestScope.result} // 짝수가 출력된다.
	
</body>
</html>

 

- EL표기는 4대 저장소 외에도 파라미터, 헤더 값 등을 쉽게 얻어낼 수 있다. (param, paramValues, header, headervalues, cookie, initParam 등)

- 헤더관련 출력한 정보는 홈페이지 내 개발자 도구(f12)의 헤더 항목에서 각 목록 확인 가능하다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<%
pageContext.setAttribute("result", "hello");
%>
<body>
	<%=request.getAttribute("result") %>입니다. 
	${result}입니다.<br>
	${names[0]}
	${names[1]}<br>
	${notice.title}<br>
	${result}
	${requestScope.result}<br>
    
	${param.n} // 파라미터 관련 출력
	${header.accept}<br> // 헤더 accept 관련 출력
	
</body>
</html>

 

- pageContext 객체

<%=pagecontext.getRequest().getMethod()%> 를 EL을 통하여

${pageContext.request.method}로 사용 가능하다.
반응형

+ Recent posts