프로그래밍 공부

2025.02.11 JSP 공부

3452 2025. 2. 11. 16:04

내장객체

: 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