-> 블로그 이전

[JSP] JSP 기본 객체 & 영역

2022. 3. 19. 14:10Language`/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 기본 객체

https://gangzzang.tistory.com/

 

기본 객체의 속성

- 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의 인증정보를 저장할 때 사용