[JSP] 내장 객체 영역
💻 1. 내장 객체의 영역
-
1-1 내장 객체의 영역이란?
💡 내장 객체의 영역은 각 객체가 저장되는 메모리의 유효기간이다.
- 자바 프로그래밍에서 지역변수를 생각해보면 이해가 쉽다.
- 자바 프로그래밍에서 메서드 내에서 선언된 변수는 메서드를 벗어나면 소멸되는데 클래스 단위로 구성된 자바와는 다르게 JSP와 같은 웹 애플리케이션은 페이지 단위로 구성된다.
- A페이지에서 선언한 변수를 B페이지로 이동한 후에도 접근할 수 있으려면 자바와는 조금 다르게 접근해야한다.
- 그래서 JSP에서는 영역을 통해 내장 객체에 저장된 속성값을 공유할 수 있도록 한다.
📌 내장 객체의 영역은 총 4가지가 있다.
-
1-2 내장 객체의 영역 종류
영역 이름 내용 page 영역 동일한 페이지에서만 공유되고 페이지를 ㅣ벗어나면 소멸된다. request 영역 하나의 요청에 의해 호출된 페이지와 포워드(요청 전달)된 페이지까지 공유된다. session 영역 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. application 영역 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다.
-
1-3 영역이 제공하는 주요 메서드
💡 void setAttribute(String name, Object value)
- 각 영역에 속성을 저장한다.
- 첫 번째 인수는 속성명, 두 번째 인수는 저장할 값이다.
- 값의 타입은 Object이므로 모든 타입의 객체를 저장할 수있다.
💡 Object getAttribute(String name)
- 영역에 저장된 속성값을 얻어온다.
- Object로 자동 형변환되어 저장되므로 원래 타입으로 형 변환 후 사용해야 한다.
💡 void removeAttribute(String name)
- 영역에 저장된 속성을 삭제한다.
- 삭제할 속성명이 존재하지 않더라도 에러는 발생하지 않는다.
📌 이제 각 영역을 설명하기 전 공통적으로 사용할 데이터 전송 객체에 대해서 알아보자
💻 2. 데이터 전송 객체(DTO)준비
-
2-1 데이터 전송 객체(Data Transfer Object)란?
💡 주로 데이터를 저장하거나 전송하는데 쓰이는 객체로, 다른 로직 없이 순수하게 데이터만을 담고 있다.
데이터만 가지고 있는 객체라 하여 값 객체 라고도 한다. DTO 는 자바빈즈 규약에 따라 작성한다.
📌 자바 빈즈란?
자바로 작성한 소프트웨어 컴포넌트로 , 다음의 규약을 따르는 자바 클래스를 말한다.
💡 자바빈즈 규약
- 자바빈즈는 기본(default)패키지 이외의 패키지에 속해야한다.
- 멤버 변수(속성)의 접근 지정자는 private으로 선언한다.
- 기본 생성자가 있어야한다.
- 멤버 변수에 접근할 수있는 게터/세터 메서드가 있어야 한다.
- 게터/세터 메서드의 접근 지정자는 public으로 선언한다.
📌 이제 부터 person이라는 이름의 DTO를 작성해보자 DTO는 데이터를 저장하거나 전송하는데 쓰이는 객체로 jsp파일이 아닌 java파일로 생성을 한다.
-
2-2 Person DTO 예시
public class Person {
private String name; // private 멤버변수
private int age; // private 멤버변수
public Person() { // 기본 생성자
}
// get/set 메서드
public String getName(){
}
public String setName(name){
this.name = name;
}
public int getAge(){
}
public int setAge(age){
this.age = age;
}
}////////////class
1-1 내장 객체의 영역이란?
💡 내장 객체의 영역은 각 객체가 저장되는 메모리의 유효기간이다.
- 자바 프로그래밍에서 지역변수를 생각해보면 이해가 쉽다.
- 자바 프로그래밍에서 메서드 내에서 선언된 변수는 메서드를 벗어나면 소멸되는데 클래스 단위로 구성된 자바와는 다르게 JSP와 같은 웹 애플리케이션은 페이지 단위로 구성된다.
- A페이지에서 선언한 변수를 B페이지로 이동한 후에도 접근할 수 있으려면 자바와는 조금 다르게 접근해야한다.
- 그래서 JSP에서는 영역을 통해 내장 객체에 저장된 속성값을 공유할 수 있도록 한다.
📌 내장 객체의 영역은 총 4가지가 있다.
1-2 내장 객체의 영역 종류
영역 이름 | 내용 |
---|---|
page 영역 | 동일한 페이지에서만 공유되고 페이지를 ㅣ벗어나면 소멸된다. |
request 영역 | 하나의 요청에 의해 호출된 페이지와 포워드(요청 전달)된 페이지까지 공유된다. |
session 영역 | 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. |
application 영역 | 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다. |
1-3 영역이 제공하는 주요 메서드
💡 void setAttribute(String name, Object value)
- 각 영역에 속성을 저장한다.
- 첫 번째 인수는 속성명, 두 번째 인수는 저장할 값이다.
- 값의 타입은 Object이므로 모든 타입의 객체를 저장할 수있다.
💡 Object getAttribute(String name)
- 영역에 저장된 속성값을 얻어온다.
- Object로 자동 형변환되어 저장되므로 원래 타입으로 형 변환 후 사용해야 한다.
💡 void removeAttribute(String name)
- 영역에 저장된 속성을 삭제한다.
- 삭제할 속성명이 존재하지 않더라도 에러는 발생하지 않는다.
📌 이제 각 영역을 설명하기 전 공통적으로 사용할 데이터 전송 객체에 대해서 알아보자
💻 2. 데이터 전송 객체(DTO)준비
2-1 데이터 전송 객체(Data Transfer Object)란?
💡 주로 데이터를 저장하거나 전송하는데 쓰이는 객체로, 다른 로직 없이 순수하게 데이터만을 담고 있다.
데이터만 가지고 있는 객체라 하여 값 객체 라고도 한다. DTO 는 자바빈즈 규약에 따라 작성한다.
📌 자바 빈즈란?
자바로 작성한 소프트웨어 컴포넌트로 , 다음의 규약을 따르는 자바 클래스를 말한다.
💡 자바빈즈 규약
- 자바빈즈는 기본(default)패키지 이외의 패키지에 속해야한다.
- 멤버 변수(속성)의 접근 지정자는 private으로 선언한다.
- 기본 생성자가 있어야한다.
- 멤버 변수에 접근할 수있는 게터/세터 메서드가 있어야 한다.
- 게터/세터 메서드의 접근 지정자는 public으로 선언한다.
📌 이제 부터 person이라는 이름의 DTO를 작성해보자 DTO는 데이터를 저장하거나 전송하는데 쓰이는 객체로 jsp파일이 아닌 java파일로 생성을 한다.
2-2 Person DTO 예시
public class Person {
private String name; // private 멤버변수
private int age; // private 멤버변수
public Person() { // 기본 생성자
}
// get/set 메서드
public String getName(){
}
public String setName(name){
this.name = name;
}
public int getAge(){
}
public int setAge(age){
this.age = age;
}
}////////////class
📌 각 객체의 영역에 대해서 설명하기 전 DTO 준비가 완료되었으니 범위가 좁은 순서대로 객체의 영역에 대해서 알아보자
💻 3. page 영역
3-1 내장 객체 page의 영역이란?
- 기본적으로 클라이언트의 요청을 처리하는데 관여하는 JSP페이지마다 하나씩 생성된다.
- 그리고 이때 각 JSP페이지는 page영역을 사용하기 위한 pageContext객체를 할당 받게 된다.
- 이 객체에 저장 된 정보는 해당 페이지에서만 사용할 수 있고 페이지를 벗어나면 소멸된다.
- include 지시어로 포함한 파일은 하나의 페이지로 통합되므로 page영역이 공유된다.
💻 4. request 영역
-
4-1 내장 객체 request 의 영역이란?
클라이언트가 요청을 할 때마다 새로운 request객체가 생성되고, 같은 요청을 처리하는데 사용되는 모든 JSP 페이지가 공유한다.
- 따라서 reqeust 영역에 저장된 정보는 현재 페이지와 포워드된 페이지까지 공유할 수있다.
- 단, 페이지 이동 시에는 소멸되어 사용할 수 없게 된다.
-
4-2 request내장 객체를 통해 포워드를 수행하는 코드
request.getRequestDispatcher("포워드할 파일 경로").forward(request, response);
💻 5. session 영역
5-1 내장 객체 session 의 영역이란?
클라이언트가 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session객체를 공유할 수 있다.
세션이란?
- 클라이언트가 서버에 접속해 있는 상태 혹은 단위를 말한다
- 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용된다.
포털 사이트에서 웹 브라우저를 닫으면 자동으로 로그아웃이 되는 이유가 바로 session 객체의 특성 때문이다.
💻 6. application 영역
6-1 내장 객체 application의 영역이란?
- 웹 애플리케이션은 단 하나의 application 객체만 생성하고, 클라이언트가 요청하는 모든 페이지가 application 객체를 공유하게 된다.
- 또한, application 객체는 웹 서버를 시작할 때 만들어지며, 웹 서버를 내릴 때 삭제된다.
즉, application 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새롭게 접속해도 삭제되지 않는다.
💬 요약
-
page 영역 : 동일한 페이지에서만 공유되고, 페이지를 벗어나면 소멸된다.
-
request 영역 : 하나의 요청에 의해 호출된 페이지와 포워드된 페이지까지 공유된다. 새로운 페이지를 요청하면 소멸된다.
-
session 영역 : 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. 포워드나 페이지 이동 시에도 영역은 소멸되지 않는다.
-
application 영역 : 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다. [즉, 서버가 셧다운 되지 않는다면 언제까지든 공유되는 영역이다.]
Author And Source
이 문제에 관하여([JSP] 내장 객체 영역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@xnfxnf97/JSP-내장-객체-영역
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
3-1 내장 객체 page의 영역이란?
- 기본적으로 클라이언트의 요청을 처리하는데 관여하는 JSP페이지마다 하나씩 생성된다.
- 그리고 이때 각 JSP페이지는 page영역을 사용하기 위한 pageContext객체를 할당 받게 된다.
- 이 객체에 저장 된 정보는 해당 페이지에서만 사용할 수 있고 페이지를 벗어나면 소멸된다.
- include 지시어로 포함한 파일은 하나의 페이지로 통합되므로 page영역이 공유된다.
-
4-1 내장 객체 request 의 영역이란?
클라이언트가 요청을 할 때마다 새로운 request객체가 생성되고, 같은 요청을 처리하는데 사용되는 모든 JSP 페이지가 공유한다.
- 따라서 reqeust 영역에 저장된 정보는 현재 페이지와 포워드된 페이지까지 공유할 수있다.
- 단, 페이지 이동 시에는 소멸되어 사용할 수 없게 된다.
-
4-2 request내장 객체를 통해 포워드를 수행하는 코드
request.getRequestDispatcher("포워드할 파일 경로").forward(request, response);
💻 5. session 영역
5-1 내장 객체 session 의 영역이란?
클라이언트가 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session객체를 공유할 수 있다.
세션이란?
- 클라이언트가 서버에 접속해 있는 상태 혹은 단위를 말한다
- 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용된다.
포털 사이트에서 웹 브라우저를 닫으면 자동으로 로그아웃이 되는 이유가 바로 session 객체의 특성 때문이다.
💻 6. application 영역
6-1 내장 객체 application의 영역이란?
- 웹 애플리케이션은 단 하나의 application 객체만 생성하고, 클라이언트가 요청하는 모든 페이지가 application 객체를 공유하게 된다.
- 또한, application 객체는 웹 서버를 시작할 때 만들어지며, 웹 서버를 내릴 때 삭제된다.
즉, application 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새롭게 접속해도 삭제되지 않는다.
💬 요약
-
page 영역 : 동일한 페이지에서만 공유되고, 페이지를 벗어나면 소멸된다.
-
request 영역 : 하나의 요청에 의해 호출된 페이지와 포워드된 페이지까지 공유된다. 새로운 페이지를 요청하면 소멸된다.
-
session 영역 : 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. 포워드나 페이지 이동 시에도 영역은 소멸되지 않는다.
-
application 영역 : 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다. [즉, 서버가 셧다운 되지 않는다면 언제까지든 공유되는 영역이다.]
Author And Source
이 문제에 관하여([JSP] 내장 객체 영역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@xnfxnf97/JSP-내장-객체-영역
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
5-1 내장 객체 session 의 영역이란?
클라이언트가 웹 브라우저를 최초로 열고난 후 닫을 때까지 요청되는 모든 페이지는 session객체를 공유할 수 있다.
세션이란?
- 클라이언트가 서버에 접속해 있는 상태 혹은 단위를 말한다
- 주로 회원인증 후 로그인 상태를 유지하는 처리에 사용된다.
포털 사이트에서 웹 브라우저를 닫으면 자동으로 로그아웃이 되는 이유가 바로 session 객체의 특성 때문이다.
6-1 내장 객체 application의 영역이란?
- 웹 애플리케이션은 단 하나의 application 객체만 생성하고, 클라이언트가 요청하는 모든 페이지가 application 객체를 공유하게 된다.
- 또한, application 객체는 웹 서버를 시작할 때 만들어지며, 웹 서버를 내릴 때 삭제된다.
즉, application 영역에 한 번 저장된 정보는 페이지를 이동하거나, 웹 브라우저를 닫았다가 새롭게 접속해도 삭제되지 않는다.
💬 요약
-
page 영역 : 동일한 페이지에서만 공유되고, 페이지를 벗어나면 소멸된다.
-
request 영역 : 하나의 요청에 의해 호출된 페이지와 포워드된 페이지까지 공유된다. 새로운 페이지를 요청하면 소멸된다.
-
session 영역 : 클라이언트가 처음 접속한 후 웹 브라우저를 닫을 때까지 공유된다. 포워드나 페이지 이동 시에도 영역은 소멸되지 않는다.
-
application 영역 : 한 번 저장되면 웹 애플리케이션이 종료될 때까지 유지된다. [즉, 서버가 셧다운 되지 않는다면 언제까지든 공유되는 영역이다.]
Author And Source
이 문제에 관하여([JSP] 내장 객체 영역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@xnfxnf97/JSP-내장-객체-영역
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여([JSP] 내장 객체 영역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xnfxnf97/JSP-내장-객체-영역저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)