티스토리 뷰

 

<%@page import="java.util.Enumeration"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>속성과 범위</title>
</head>
<body>
	<h2>A페이지 입니다.</h2>
	<%
		String id = "test";
		pageContext.setAttribute("id", id);
		request.setAttribute("id", id);
		session.setAttribute("id", id);
		application.setAttribute("id", id);
		request.getRequestDispatcher("exam8_B.jsp").forward(request,response);
	%>
</body>
</html>

[exam8_A.jsp]

A페이지를 실행시 URL은 A페이지라 뜨지만 내용물은 B페이지가 뜬다

그 이유는 request.getRequestDispatcher("exam8_B.jsp").forward(request,response); 를 사용해서다

 

<%@page import="java.util.Enumeration"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>속성과 범위</title>
</head>
<body>
	<h2>B페이지 입니다.</h2>
	페이지:<%=pageContext.getAttribute("id") %><br>
	요청:<%=request.getAttribute("id") %><br>
	세션:<%=session.getAttribute("id") %><br>
	애플리케이션:<%=application.getAttribute("id") %><br>
	<a href="exam8_C.jsp">다음 C페이지로 이동</a>
</body>
</html>

[exam8_B.jsp]

 

<%@page import="java.util.Enumeration"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>속성과 범위</title>
</head>
<body>
	<h2>C페이지 입니다.</h2>
	페이지:<%=pageContext.getAttribute("id") %><br>
	요청:<%=request.getAttribute("id") %><br>
	세션:<%=session.getAttribute("id") %><br>
	애플리케이션:<%=application.getAttribute("id") %><br>
	
</body>
</html>

[exam8_C.jsp]

 

 

위의 3개의 페이지를 이용해 page, request, session, application의 특징을 적어본다.

 

A페이지 작동시
C페이지 이동 후

page는 담은 하나의 페이지 안에서만 속성값을 유지한다.

현재 A페이지를 실행했을때, 화면에 출력되지는 않았지만 이미 A페이지의 코드들은 실행되고 

B페이지로 넘어가 B페이지의 내용물을 출력했다

그렇기때문에 page의 속성은 A페이지 내에서 끝나버렸기에 B페이지 내용에서는 null값이 나온다.

 

request는 한번의 요청에서만 유지된다.

그렇기 때문에 C페이지로 넘어가고 나서는 이미 request가 요청이 되었으므로 null값이 나오다.


session과 application은 속성값을 한 서버 내에서 유지된다.

 

하지만 session은 하나의 브라우저에서 그 속성값을 유지한다

session은 사용자가 다르면 다른 값을 갖게 된다.

(하나의 사용자도 똑같은 서버에 접근햇을때 [브라우저]마다 세션이 서로 다르게 가능하다)

주로 웹사이트의 로그인시 session을 사용한다

 

application은 어떤 사용자가 접근하든 그 설정값을 볼 수 있다.

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함