[JSP] JSP 기본 객체 & 영역
2022. 3. 19. 14:10ㆍLanguage`/JSP (Java Server Page)
Web-Application의 4가지 영역
1) page 영역
- 하나의 JSP 페이지를 처리할 때 사용되는 영역
- Client로부터 request가 들어오면 해당 JSP 페이지를 실행하는데, 그 때 각각의 JSP 페이지의 범위가 "page 영역"이다
- pageContext 기본 객체
2) request 영역
- 하나의 HTTP 요청을 처리할 때 사용되는 영역
- Client가 request를 보낼 때마다 새로운 request 영역이 생성된다
- 하나의 JSP 페이지에 대해서 request와 관련된 모든 JSP 페이지가 "request 영역"이다
- request 기본 객체
3) session 영역
- 하나의 웹 브라우저와 관련된 영역
- 세션이 생성되면 해당 웹 브라우저와 관련된 모든 request가 하나의 "session 영역"이다
- session 기본 객체
4) application 영역
- 하나의 Web-Application과 관련된 영역
- W-A과 관련된 전체 영역을 포함
>> /chap05 W-A에 포함된 모든 JSP 페이지 & 모든 request & 모든 session은 하나의 "application 영역"에 포함된다
- application 기본 객체
기본 객체의 속성
- JSP 페이지 사이에서 각자 정보를 주고받거나 공유하기 위한 목적으로 속성을 사용
메소드 | 설명 |
void setAttribute(Stirng name, Object value) | 이름이 "name"인 속성의 값을 value로 설정 |
Object getAttribute(String name) | 이름이 "name"인 속성의 값 return >> "name"인 속성이 없으면 return null |
void removeAttribute(String name) | 이름이 "name"인 속성 삭제 |
Enumeration<String> getAttributeNames() | 속성의 이름 목록 구하기 >> "pageContext"는 이 메소드를 사용하지 못한다 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import ="java.util.*" trimDirectiveWhitespaces="true"%>
<html>
<head>
<title>기본 객체 속성 사용</title>
</head>
<body>
<%
Enumeration<String> emr_R = request.getAttributeNames();
Enumeration<String> emr_S = session.getAttributeNames();
Enumeration<String> emr_A = application.getAttributeNames();
out.println("## request 기본 객체 속성 ##<br>");
while(emr_R.hasMoreElements()){
String name = emr_R.nextElement();
Object value = request.getAttribute(name);
out.println(name + " : " + value + "<br><br>");
}
out.println("<br><br>");
out.println("## session 기본 객체 속성 ##<br>");
while(emr_S.hasMoreElements()){
String name = emr_S.nextElement();
Object value = session.getAttribute(name);
out.println(name + " : " + value + "<br><br>");
}
out.println("<br><br>");
out.println("## application 기본 객체 속성 ##<br>");
while(emr_A.hasMoreElements()){
String name = emr_A.nextElement();
Object value = application.getAttribute(name);
out.println(name + " : " + value + "<br><br>");
}
out.println("<br><br>");
%>
</body>
</html>
속성의 활용
기본 객체 | 영역 | 활용 |
pageContext | PAGE | 하나의 request를 처리하는 하나의 JSP 페이지 내에서 공유할 값 저장 >> 주로 커스텀 태그에서 새로운 변수 추가할 때 사용 |
request | REQUEST | 하나의 request에 대한 관련된 모든 JSP 페이지에서 공유할 값 저장 >> 관련된 JSP 페이지 사이에서 정보를 전달하기 위해 사용 |
session | SESSION | 한 명의 user와 관련된 정보를 JSP 페이지 사이에서 공유하기 위해 사용 >> user의 로그인 정보 / .... |
application | APPLICATION | 모든 user를 위해 공유할 정보 저장 >> ex) 임시 폴더 경로 / .... :: W-A의 설정 정보 |
- MVC(Model-View-Controller) 패턴에 기반해서 W-A를 개발할 때 request 기본 객체의 속성을 주로 사용
- session은 로그인, 로그아웃 등 user의 인증정보를 저장할 때 사용