프로그래밍 언어/자바 웹

application 내장 객체에 데이터 바인딩 실습

· 코딩마이데이

1. 다음과 같이 appTest1.jsp, appTest2.jsp 실습 파일을 준비합니다.

실습 파일 위치

 

2. appTest1.jsp를 다음과 같이 작성합니다. 첫 번째 JSP에서 session과 application 내장 객체에 name과 address 값을 바인딩합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	session.setAttribute("name", "이순신");
	application.setAttribute("address", "서울시 성동구");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>내장 객체 스코프 테스트</title>
</head>
<body>
	<h1>이름과 주소를 저장합니다.</h1>
	<a href=appTest2.jsp>두 번째 웹 페이지로 이동</a>
</body>
</html>

 

3. appTest2.jsp를 다음과 같이 작성합니다. 첫 번째 JSP에서 session과 application 대상 객체에 바인딩한 값을 가져옵니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String name = (String) session.getAttribute("name");
	String address = (String) application.getAttribute("address");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>내장 객체 스코프 테스트2</title>
</head>
<body>
	<h1>이름은 <%=name %>입니다.</h1>
	<h1>주소는 <%=address %>입니다.</h1>
</body>
</html>

 

4. http:localhost:8090/pro12/test01/appTest1.jsp로 요청합니다. 첫 번째 JSP에서 name과 address를 session과 application에 바인딩합니다.

첫 번째 브라우저에서 요청 시

 

5. 같은 브라우저에서 요청할 경우 두 번째 JSP에서 session과 application에 접근할 수 있습니다.

같은 브라우저에서 요총 시

 

하지만 다른 브라우저에서는 application의 값에만 접근할 수 있습니다.

다른 섹션의 브라우저에서 요청 시

 

 

같은 브라우저에서 appTest2.jsp를 요청하면 session과 application에 저장된 값을 그대로 출력합니다. 그러나 다른 브라우저로 요청할 경우 session 내장 객체의 스코프는 접근할 수 없으므로 null을 출력합니다. 이를 통해 application 내장 객체의 스코프는 애플리케이션 전체이고, session 내장 객체의 스코프는 같은 브라우저임을 알 수 있습니다.