참고글


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
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!