내장객체
: JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체이다.
내장 객체 | 반환 유형 | 설명 |
request | javax.servlet.http.HttpServletRequest | 웹 브라우저의 HTTP 요청 정보를 저장한다. |
response | javax.servlet.http.HttpServletResponse | 웹 브라우저의 HTTP 요청에 대한 응답 정보를 저장한다. |
out | javax.servlet.jsp.jsp.jspWriter | JSP 페이지에 출력할 내용을 담고 있는 출력 스트림이다. |
session | javax.servlet.http.HttpSession | 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장한다. |
application | javax.servlet.ServletContext | 웹 애플리케이션의 콘텍스트 정보를저장한다. |
pageContext | javax.srvlet.jsp.PageContext | JSP 페이지의 정보를 저장한다. |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타낸다. |
config | javax.servlet.ServletConfig | JSP 페이지의 설정 정보를 처리한다. |
exception | java.lang.Throwable | JSP 페이지의 예외 발생을 처리한다. |
위의 내장 객체들은 JSP에서 java를 해석하기 위해서 만드는 임시클래스 안의 _jspService 메서드 안에 기본적으로 존재하기 때문에 별도로 정의하지 않아도 사용할 수 있다.
모든 내장 객체는 JSP 컨테이너가 관리하는 객체로, 이 중에서 request, session, application, pageContext를 이용하여 속성을 관리할 수 있다.
메소드 | 반환 유형 | 설명 |
setAttribute(String name, Object value) | void | 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장한다. |
getAttribute(String name) | Object | 해당 내장 객체의 속성 이름이 name인 속성 값을 가져온다. |
removeAttribute(String name) | void | 해당 내장 객체의 속성 이름이 name인 속성을 삭제한다. |
getAttributeNames() | java.util. Enumeration |
해당 내장 객체의 모든 속성 이름을 가져온다.(단, pageContext 내장 객체는 이 메소드를 제공하지 않는다.) |
serAttribute()의 매개변수 String name은 키를, Object value는 값을 의미한다.
또한 getAttributeNames()는 모든 키 목록을 반환한다.
set은 request에 저장, get은 request에서 값을 가져오는 역할을 한다.
getAttributeNames()의 반환 유형 Enumeration은 iterator의 hasNext()와 next() 메서드와 비슷한 메서드를 가지고 있다.
request 내장 객체
: JSP에서 가장 많이 사용되는 기본 내장 객체로, 웹브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장한다.
요청 파라미터 관련 메서드 | 반환 유형 | 설명 |
getParameter(String name) | String | 요청 파라미터 이름이 name인 값을 전달받는다. 요청 파라미터 값이 없으면 null을 반환한다. |
getParameterValues(String name) | String[] | 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달받는다. 요청 파라미터 값이 없으면 null을 반환한다. |
getParameterNames() | java.util. Enumeration |
모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달받는다. |
getParameterMap() | java.util.Map | 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 전달받는다[MAP 객체타입은 (요청 파라미터 이름, 값) 형식으로 구성된다.] |
각각의 메서드는 키와 값 또는 모든키, 모든값을 반환하는 역할을 한다.
요청 HTTP 헤더 관련 메서드 | 반환 유형 | 설명 |
getHeader(String name) | String | 설정한 name의 헤더 값을 가져온다. |
getHeaders(String name) | Enumeration | 설정한 name의 헤더 목록 값을 가져온다. |
getHeaderNames() | Enumeration | 모든 헤더 이름을 가져온다. |
getIntHeader(String name) | int | 설정한 name의 헤더 값을 정수로 가져온다. |
getDateHeader(String name) | long | 설정한 name의 헤더 값을 시간 값으로 가져온다. |
getCookies() | javax.servlet.http.Cookies | 모든 쿠키 값을 가져온다. |
헤더는 Date 요청과 응답에 포함되는 부가사항이다.
Enumeration 유형으로 반환되는 메서드의 경우 iterator의 hasNext()와 next()와 같은 역할을 하는 hasMoreElements() 메서드와 nextElement() 메서드를 가지고 탐색하고 출력한다.
영역 | 내장 객체 | 속성의 유효 범위 |
page | pageContext | 해당 페이지가 클라이언트에게 서비스를 제공하는 동안 유효하다. |
request | request | 클라이언트의 요청이 처리되는 동안 유효하다. |
session | session | 세션이 유지되는 동안 유효하다. |
application | application | 웹 애플리케이션이 실행되고 있는 동안 유효하다. |
모두 값을 저장하는 역할을 하며, scope에 따라 유효범위가 다르기 때문에 용도에 맞는 곳에 사용해야한다.
response 내장 객체
: 사용자의 요청을 처리한 결과를 서버에서 웹 브라우저로 전달하는 정보를 저장한다.
이때 사용자의 요청을 처리한 결과는 text/html의 형태이다.
페이지 이동방식에는 2가지 방법이 있다.
forward 방식 : 현재 JSP 페이지 내에서 이동할 URL로 요청 정보를 그대로 전달하여 최초로 요청한 정보가 이동된 URL에서도 유효하지만 이동된 URL 대신 처음 URL이 주소창에 나타나서 사용자가 이동여부를 알수없다.
<jsp:forward page = "이동할 페이지" />
위의 경우에는 request를 사용하여 값을 옮길수 없다.
RequestDispatcher rd = getRequestDispatcher("이동할 페이지");
rd.forward(req, resp);
2번째 forward의 경우에는 서버 내부에서 실행되고 새로운 요청을 만들지 않기 때문에 request에 저장된 값이 유지된다.
redirect 방식 : 처음 요청받은 현재 JSP 페이지로부터 이동할 URL을 웹 브라우저로 반환한다. 이 때 웹 브라우저에서는 새로운 요청을 생성하여 이동할 URL에 다시 요청을 전송하기 때문에 처음 보낸 요청 정보가 이동된 URL에서는 유효하지 않다.
그렇기 때문에 redirect 또한 리퀘스트가 유지되지 않는다.
'프로그래밍 공부' 카테고리의 다른 글
2025.02.13 JSP 공부 (0) | 2025.02.13 |
---|---|
2025.02.12 JSP 공부 (0) | 2025.02.12 |
2025.02.10 JSP 공부 (0) | 2025.02.10 |
2025.02.07 JSP 공부 (0) | 2025.02.07 |
2025.02.06 JSP 공부 (0) | 2025.02.06 |