1. 기본 객체의 속성(Attribute) 사용

- API : http://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html

- 네 개의 기본객체 pagecontext, request, session, application 는 속성을 갖고 있다.

- 속성은 각각의 기본 객체가 존재하는 동안에 사용될 수 있고, JSP 페이지 사이에서 정보를 주고 받거나 공유하기 위한 목적으로 사용된다.

- <속성이름, 값> 형태를 가지고, 서로 다른 이름을 가진 속성을 여러개 포함할 수 있다.


 메서드

 반환형 

 설명 

 setAttribute(String name, Object value) 

 void 

 이름이 name인 속성의 값을 value로 지정한다. 

 getAttribute(String name) 

 Object 

 이름이 name인 속성의 값을 구한다. 존재하지 않을 경우 null을 반환한다. 

 removeAttribute(String name)

 void 

 이름이 name인 속성을 삭제한다. 

 getAttributeNames() 

 Enumeration 

 속성의 이름 목록을 구한다. (pageContext 제외)


<!-- setAttribute.jsp -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>application setAttribute</title>
</head>
<body>
	<form action="getAttribute.jsp" method="post">
		<table border="0" cellpadding="10" cellspacing="10">
		
			<tr align="center">
				<th>속성 이름</th>
				<td><input type="text" name="name"></td>
			</tr>
			
			<tr align="center">
				<th>속성 값</th>
				<td><input type="text" name="value"></td>
			</tr>
			
			<tr align="center">
				<td colspan="2">
				<input type="submit" value="보내기">&nbsp;&nbsp;&nbsp;<input type="reset" value="취소">
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

<!-- 
	입력 값
	test1 / 1234
	test2 / 1234
	test3 / 1234
 -->


<!-- getAttribute.jsp --> <%@page import="java.util.Enumeration"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String value = request.getParameter("value"); if (name != null && value != null) { application.setAttribute(name , value); } %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>application getAttribute</title> </head> <body> <% Enumeration attrEnum = application.getAttributeNames(); while (attrEnum.hasMoreElements()) { String name2 = attrEnum.nextElement().toString(); Object value2 = application.getAttribute(name2); %> application 속성 : <b><%=name2 %></b> / <%=value2 %><br> <% } %> </body> </html> <!-- 실행결과 application 속성 : org.apache.catalina.WELCOME_FILES / [Ljava.lang.String;@feac5e5 application 속성 : javax.servlet.context.tempdir / C:\Users\Administrator\ecl . . . 중간 생략 . . . st.server.core\tmp0\work\Catalina\localhost\Blog application 속성 : org.apache.catalina.jsp_classpath / /jar;/C:/Program%20File . . . 중간 생략 . . . Program%20Files/Java/jre7/lib/ext/zipfs.jar application 속성 : org.apache.jasper.runtime.JspApplicationContextImpl / org.apache.jasper.runtime.JspApplicationContextImpl@7e66458c application 속성 : org.apache.catalina.resources / org.apache.naming.resources.ProxyDirContext@6c602b28 application 속성 : test2 / 1234 application 속성 : test1 / 1234 application 속성 : test3 / 1234 application 속성 : org.apache.AnnotationProcessor / org.apache.catalina.util.DefaultAnnotationProcessor@1db186ae -->


2. 속성의 값 타입

- 속성의 이름은 문자열을 나타내는 String 타입이지만, 값은 기본 데이터 타입을 제외한 나머지는 모든 클래스 타입이 올 수 있다.

- 기본 데이터 타입의 경우는 래퍼 타입을 대신 사용해야 하지만, 자바 5버전부터 자동 변환을 처리해주는 오토 박싱/오토 언박싱 기능이 추가되었다.

- 오토박싱/언박싱 기능을 사용하지 않고 래퍼 타입에서 직접 값을 가져올 때에는 래퍼클래스가 제공하는 메서드를 사용한다.


 메서드

 반환형 

 설명 

 intValue()

 int 

 래퍼 클래스가 지정한 값을 int 타입으로 구한다. 

 longValue()

 long 

 래퍼 클래스가 지정한 값을 long 타입으로 구한다. 

 floatValue()

 float 

 래퍼 클래스가 지정한 값을 float 타입으로 구한다.  

 doubleValue()

 double 

 래퍼 클래스가 지정한 값을 double 타입으로 구한다.  

 shortValue()

 short 

 래퍼 클래스가 지정한 값을 short 타입으로 구한다.  

 byteValue()

 byte 

 래퍼 클래스가 지정한 값을 byte 타입으로 구한다.  

 booleanValue()

 boolean 

 래퍼 클래스가 지정한 값을 boolean 타입으로 구한다.  



3. 속성의 활용

- 속성을 저장하기 위해서 request, session 객체가 많이 사용된다.

- request 객체의 속성은 MVC 패턴 구축에 많이 사용되고, session 객체의 속성은 로그인 로그아웃 같은 사용자 인증정보에 많이 사용된다.


 기본객체

 영역 

 쓰임새 

 pageContext

 PAGE 

 한번의 요청을 처리하는 하나의 JSP 페이지 내에서 공유될 값을 저장한다. (커스텀 태그에서 새로운 변수를 추가 할 때 사용)

 request

 REQUEST 

 한번의 요청을 처리하는데 사용되는 모든 JSP 페이지에서 공유될 값을 저장한다. (정보를 전달하기 위해 사용)

 session 

 SESSION 

 한 사용자와 관련된 정보를 JSP들이 공유하기 위해서 사용한다. (사용자의 로그인 정보와 같은 것들을 저장)

 application 

 APPLICATION 

 모든 사용자와 관련해서 공유할 정보를 저장한다. (임시 디렉터리 경로와 같은 웹 어플리케이션의 설정 정보를 저장)


+ Recent posts