#기본 객체의 속성(Attribute) - pageContext, request, session, application
#네 개의 기본 객체 pageContext, request, session, application은 속성을 갖는다.
기본 객체들이 존재하는 동안 기본 객체의 속성을 사용할 수 있다.
속성은 JSP페이지 사이에서 정보를 주고받거나 공유하기 위한 목적으로 사용된다.
속성(상태)
-영역들이 가지고 있는 속성
-값을 저장할 수 있는 공간
-유지를 할 수 있다.
-e.g.) 로그인 중 -> 메일 버튼 클릭 -> 로그인했다고 기억중(session)
-application(한 명 한 명 각기 다른 정보를 저장하는 영역이 아님)
-속성 <속성 이름, 값> : 이름은 중복될 수 없다.
#속성 처리 메서드
메서드 | 리턴타입 | 설명 |
setAttribute(String name, Object value) | void | 이름이 name인 속성의 값을 value로 지정한다. 없으면 새로 생성한다. |
getAttribute(String name) | Object (자바의 모든 객체를 다 넣을 수 있다. >>형변환이 필요) |
이름이 name인 속성의 값을 구한다. 지정한 이름의 속성이 존재하지 않으면 null을 리턴한다. |
removeAttribute(String name) | void | 이름이 name인 속성을 삭제한다. |
getAttributeNames() | Enumeration<String> | 속성의 이름 목록을 구한다. (pageContext기본 객체는 이 메서드를 제공하지 않는다.) |
예제1) setAttribute 메서드 사용
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<%
String name = request.getParameter("name");
String value = request.getParameter("value");
if(name != null && value != null){
application.setAttribute(name, value);
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>application 속성 지정</title>
</head>
<body>
<%
if(name != null && value != null){
%>
application 기본 객체의 속성 설정 :
<%= name %> = <%= value %>
<%
}else{
%>
application 기본 객체의 속성 설정 안 함
<%
}
%>
</body>
</html>
#setApplicationAttribute.jsp는 URL로 전달받은 파라미터를 application기본 객체의 속성으로 설정한다.
# "?" 뒤 쿼리 문자열에 속성 이름과 속성 값을 지정하면 다음과 같은 결과 화면 출력한다.
예제 2) getAttributeNames, getAttribute메서드 사용
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Enumeration<String> attrEnum = application.getAttributeNames();
while (attrEnum.hasMoreElements()) {
String name = attrEnum.nextElement();
Object value = application.getAttribute(name);
%>
application 속성 : <b><%= name %></b> = <%= value %><br>
<%
}
%>
</body>
</html>
-결과 화면
: 앞서 설정했던 속성 이름과 속성 값이 들어가 있는 것을 확인할 수 있다.
#속성의 활용
기본 객체 | 영역 | 쓰임새 |
pageContext | PAGE | (한 번의 요청을 처리하는) 하나의 JSP 페이지 내에서 공유할 값을 저장한다. 주로 커스텀 태그에서 새로운 변수를 추가할 때 사용한다. |
request | REQUEST | 한 번의 요청을 처리하는 데 사용되는 모든 JSP 페이지에서 공유할 값을 저장한다. 주로 하나의 요청을 처리하는 데 사용하는 JSP 페이지 사이에서 정보를 전달하기 위해 사용된다. |
session | SESSION | 한 사용자와 관련된 정보를 JSP 사이에 공유하기 위해 사용한다. 사용자의 로그인 정보와 같은 것들을 저장한다. |
application | APPLICATION | 모든 사용자를 위해 공유할 정보를 저장한다. 임시 폴더 경로와 같이 웹 어플리케이션의 설정 정보를 주로 저장한다. |
#Parameter & Attribute 특징
Parameter
-키 name(String), 값 value(String)
-사용자 입장이라 value값이 단순히 String만으로 가능하다. (애플리케이션 외부)
-파라미터를 사용하는 주체는 사용자이다.
-get밖에 없다. (읽기만 가능하다)
-파라미터는 사용자의 의도를 담고있다.
Attribute
-키 name(String), 값 value(Object)
-개발자의 입장이라 value값이 Object로 가능하다. (어플리케이션 내부)
-attribute를 사용하는 주체는 개발자이다.
-get, set, remove가 다 있다.
'IT > JSP' 카테고리의 다른 글
[JSP] - 22. <jsp:include> 액션태그 사용법 (0) | 2020.07.24 |
---|---|
[JSP] - 21. 에러 처리(pageContext, 응답코드, 타입) 하는 방법 (0) | 2020.07.24 |
[JSP] - 19. 기본 객체와 영역(scope) - 2 (0) | 2020.07.23 |
[JSP] - 18. application - 파일 읽는 방법(기본 객체 사용) (0) | 2020.07.22 |
[JSP] - 17. application - 파일 읽는 방법(절대경로) (0) | 2020.07.22 |
댓글