본문 바로가기
JSP Servlet

JSP Servlet Scope

by wanttosleep1111 2023. 2. 8.

JSP Servlet Scope

 

Scope

  • JSP 페이지에서 사용되는 객체들은 JSP 내장 객체이든, 페이지 내에서 만들어졌건 간에 모두 정해진 영역 안에서만 사용 가능

 


1. PageScope

  • 저장된 값은 저장한 페이지에서 지역변수로 사용
  • 해당 JSP나 Servlet이 실행되는 동안에만 정보를 유지하고자 할 때 사용
  • 값 저장, 불러오기
    pageContext.setAttribute(name(String), value(Object));
    pageContext.getAttribute(name(String));
  • EL 표기법
    ${pageScope.name};
    ${name}

 


 

2. Request Scope

  • 클라이언트로부터 요청을 받고 응답할 때까지 사용 가능
  • HttpServletRequest 객체로 사용 가능
  • service() 메소드가 끝날 때 객체가 없어짐
  • 클라이언트의 요청을 다룰 때 사용, forward로 데이터를 넘겨서 유지하고자 할 때 사용
  • 값 저장, 불러오기
    request.setAttribute(name(String), value(Object));
    request.getAttribute(name(String))

 


 

3. Session Scope

  • 세션이 유지되는 동안 사용 가능
  • HttpSession 객체로 사용 가능
  • 웹 브라우저 별로 변수를 관리하는 영역
  • 주로 로그인 시 사용자 정보를 저장하고 싶을 때 사용
  • 값 저장, 불러오기
    session.setAttribute(name(String), value(Object))
    session.getAttribute(name(String));

 


 

4. Application Scope

  • 웹 어플리케이션이 시작되고 종료될 때까지 사용 가능
  • ServletContext 객체로 사용 가능
  • 웹 어플리케이션 당 한 개의 객체 사용
  • 모든 클라이언트들이 공통적으로 사용하는 값 저장
  • 값 저장, 불러오기
    application.setAttribute(name(String), value(Object));
    application.getAttribute(name(String));

 


 

▶ 예제

pageScope를 사용하여 EL표기법으로 화면에 출력, page2로 넘겨서 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>
<body>
	
	<%
		pageContext.setAttribute("nick", "유재석");
	%>
	
	pageScope : <%= pageContext.getAttribute("nick") %> <br>
	EL표기법 : ${pageScope.nick} <br>
	EL표기법 : ${nick} <br>
	<a href="pageScope2.jsp">applicationScope2로 이동</a>
</body>
</html>

 

<%@ 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>
<body>

	<% 
	 String nick = (String) pageContext.getAttribute("nick");
	%>
	
	표현식 : <%= nick %> <br>
	EL표기법 : ${pageScope.nick}
</body>
</html>

 


 

▶ 예제

<%@ 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>
<body>
	<%
		application.setAttribute("nick", "유재석");
	%>
	
	applicationScope : <%= application.getAttribute("nick") %> <br>
	EL표기법 : ${applicationScope.nick} <br>
	EL표기법 : ${nick} <br>
	<a href="applicationScope2.jsp">applicationScope2로 이동</a>
</body>
</html>

 

<%@ 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>
<body>
	<%= application.getAttribute("nick") %> <br>
	${applicationScope.nick} <br>
	${nick}
</body>
</html>

'JSP Servlet' 카테고리의 다른 글

JSP Servlet Maven  (0) 2023.02.13
JSP Servlet Web_MVC  (0) 2023.02.13
JSP Servlet 쿠키, 세션 (Cookie, Session)  (0) 2023.02.07
JSP Servlet 내장 객체 (Implicit Object)  (0) 2023.02.04
JSP Servlet Java Server Pages 기본  (0) 2023.01.30

댓글