스코프 우선순위
request, session, application 내장 객체에서는 데이터를 바인딩해서 다른 JSP로 전달합니다. 그런데 각 내장 객체에 바인딩하는 속성 이름이 같은 경우 JSP에서는 각 내장 객체에 지정된 출력 우선순위에 따라 순서대로 속성에 접근합니다. 이번에는 각 내장 객체에 같은 속성 이름으로 바인딩할 떄의 출력 우선순위를 알아보겠습니다.
1. forward4.jsp를 다음과 같이 작성합니다. request에 address를 바인딩한 후 다시 member4.jsp로 포워딩합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%
request.setCharacterEncoding("utf-8");
request.setAttribute("id", "hong");
request.setAttribute("pwd", "1234");
request.setAttribute("name", "홍길동");
application.setAttribute("email", "hong@test.com");
request.setAttribute("address", "서울시 강남구");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward4</title>
</head>
<body>
<jsp:forward page="member4.jsp"/>
</body>
</html>
2. member4.jsp를 다음과 같이 작성합니다. session에 다시 동일한 속성 이름 address를 바인딩합니다. 만약 표현 언어로 address 값을 출력하면 session보다 request가 우선선위가 높으므로 request의 address 값이 출력됩니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%
session.setAttribute("address", "수원시 팔달구");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 출력창</title>
</head>
<body>
<table border="1" align="center" >
<tr align="center" bgcolor="#99ccff">
<td width="7%"><b>아이디</b></td>
<td width="7%"><b>비밀번호</b></td>
<td width="5%" ><b>이름</b></td>
<td width="5%"><b>이메일</b></td>
<td width="5%" ><b>주소</b></td>
<tr>
<tr align="center">
<td>${id } </td>
<td>${pwd } </td>
<td>${name } </td>
<td>${email }</td>
<td>${address }</td>
</tr>
</table>
</body>
</html>
3. http://localhost:8090/pro14/test02/forward4.jsp로 요청합니다. 주소를 보낸 request에 바인딩된 값이 출력된 것을 알 수 있습니다.

4. 이번에는 forward4.jsp와 request에 바인딩하는 부분을 주석 처리합니다.

5. 다시 회원 가입 창에서 가입하기를 클릭하면 다음과 같이 session에서 바인딩한 주소가 출력된다는 것을 확인할 수 있습니다,

6. 표현 언어에서 동일한 속성 이름에 접근할 경우 page 객체의 속성이 우선순위가 가장 높습니다. 표현 언어에서 같은 속성에 대한 우선순위는 다음과 같습니다.
page > request > session > application
'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| Core 태그 라이브러리 사용하기 & <c:set> 태그를 이용한 실습 (0) | 2026.02.03 |
|---|---|
| JSP 표준 태그 라이브러리(JSTL) (0) | 2026.01.31 |
| 내장 객체 속성 값 출력 실습 (0) | 2026.01.25 |
| has-a 관계 빈 사용 실습 (0) | 2026.01.22 |
| HashMap 사용 실습 (0) | 2026.01.19 |