참고글
JSP 기본 객체 getAttributeNames() 사용하기
JSP 내장 객체인 request, session, application, pageContext 객체는 setAttribute(), getAttribute() 를 통해 속성 값들을 저장하거나 얻을 수 있습니다. 어떤 속성들이 저장 되어 있는지 확인할 때에는 getAttributeNames() 메서드를 통해 속성명들을 문자열로 담은 Enumeration<String> 객체를 얻을 수 있습니다. 단 pageContext 객체는 유일하게 이 메서드를 제공하지 않습니다. 사용법은 다음과 같습니다.
<%
application.setAttribute("age", 30);
Enumeration<String> attrNames = application.getAttributeNames();
while(attrNames.hasMoreElements()){
String attrName = attrNames.nextElement();
Object attrValue = application.getAttribute(attrName);
System.out.println(attrName + " : " + attrValue);
}
%> |
cs |
hasMoreElements() 메서드는 Enumeration 의 메서드로 현재 커서가 가리키는 다음 위치에도 요소가 있으면 true를 반환합니다. nextElement()는 커서를 다음 요소를 가리키도록 변경하고 해당 위치의 요소를 반환합니다. 얻어온 요소(여기서는 속성명) 을 가지고 getAttribute() 메서드를 통해 속성값을 가져옵니다.
application 객체를 통해 테스트한 예제입니다. application은 웹 어플리케이션에 대응해 생성되는 기본객체로 웹 어플리케이션에 대한 속성 정보들을 기본적으로 가지고 있습니다. 가지고 있는 속성은 서블릿/JSP 스펙을 구현한 컨테이너별로 다릅니다. 다음은 톰캣을 기준으로 이클립스 개발환경에서 실행했을때 출력되는 속성 및 값들입니다. 자세히 보면 setAttribute() 메서드를 통해 입력했던 age 속성값도 있음을 알 수 있습니다.
javax.servlet.context.tempdir : C:\studyspace\eclipse-oxygen\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\ROOT
org.apache.catalina.resources : org.apache.catalina.webresources.StandardRoot@5dd3fcf
org.apache.tomcat.InstanceManager : org.apache.catalina.core.DefaultInstanceManager@6d726a1b
org.apache.catalina.jsp_classpath : /C:/studyspace/tomcat_8.0.52/lib/;/C:/studyspace/tomcat_8.0.52/lib/annotations-api.jar;...생략...
javax.websocket.server.ServerContainer : org.apache.tomcat.websocket.server.WsServerContainer@4545c9c5
org.apache.jasper.compiler.ELInterpreter : org.apache.jasper.compiler.ELInterpreterFactory$DefaultELInterpreter@2ce94147
org.apache.jasper.compiler.TldCache : org.apache.jasper.compiler.TldCache@40a62052
age : 30
org.apache.tomcat.JarScanner : org.apache.tomcat.util.scan.StandardJarScanner@3e7ab8ef
org.apache.jasper.runtime.JspApplicationContextImpl : org.apache.jasper.runtime.JspApplicationContextImpl@559a4504 |
cs |
'Servlet&Jsp' 카테고리의 다른 글
[서블릿/JSP] JSP 예외 처리하기. isErrorPage 및 errorPage 옵션. (0) | 2018.07.29 |
---|---|
[서블릿/JSP] web.xml에서 org.apache.jasper.servlet.JspServlet의 mappedfile 설정 (0) | 2018.07.27 |
[서블릿/JSP] JSP 기본 객체별 생명 주기(scope) (1) | 2018.07.26 |
[서블릿/JSP] JSP 기본객체 종류 (0) | 2018.07.07 |
[서블릿/JSP] JSP application 기본 객체로 웹 어플리케이션 파일 자원 가져오기 (0) | 2018.07.06 |