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 |
댓글