내장 객체의 종류
1) request : 웹 브라우저의 HTTP 요청 정보를 저장함
- 반환 유형 : javax.servlet.http.HttpServletRequest
2) response : 웹 브라우저의 HTTP 요청에 대한 응답 정보를 저장함
- 반환 유형 : javax.servlet.http.HttpServletResponse
3) out : JSP 페이지에 출력할 내용을 담고 있는 출력 스트림임
- 반환 유형 : javax.servlet.jsp.jsp.jspWriter
4) session : 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장함
- 반환 유형 : javax.servlet.http.HttpSession
5) application : 웹 애플리케이션의 콘텍스트 정보를 저장함
- 반환 유형 : javax.servlet.ServletContext
6) pageContext : JSP 페이지의 정보를 저장함
- 반환 유형 : javax.servlet.PageContext
7) page : JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타냄
- 반환 유형 : javax.lang.Object
8) config : JSP 페이지의 설정 정보를 저장함
- 반환 유형 : javax.servlet.ServletConfig
9) exception : JSP 페이지의 예외 발생을 처리함
- 반환 유형 : javax.lang.Throwable
- 내장 객체는 서블릿 프로그램에서 모두 _jspService() 메서드 내부에 있음
- 메소드 매개변수인 request, response를 비롯해 pageContext, session, application, config, out, page 등은 메서드 내에서 참조할 수 있는 참조 변수임
- 모든 내장 객체는 JSP 컨테이너가 관리하는 객체로, 이 중 requset, session, application, pageContext를 이용하여 속성을 관리할 수 있음
- 속성은 각각의 내장 객체가 존재하는 동안 JSP 페이지 사이에서 정보를 주고받거나 공유하는데 사용됨
속성 처리 메서드의 종류
1) setAttribute(String name, Object value) : 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장함
- 반환 유형 : void
2) getAttribute(String name) : 해당 내장 객체의 속성 이름이 name인 속성 값을 가져옴
- 반환 유형 : Object
3) removeAttribute(String name) : 해당 내장 객체의 속성 이름이 name인 속성을 삭제함
- 반환 유형 : void
4) getAttributeNames() : 해당 내장 객체의 모든 속성 이름을 가져옴(단 pageContext 내장 객체는 이 메서드를 제공 안함)
- 반환 유형 : java.util.Enumeration
요청 파라미터 관련 메서드
1) getParameter(String name) : 요청 파마리터 이름이 name인 값을 전달받고, 값이 없으면 null을 반환
- 반환 유형 : String
2) getParameterValues(String name) : 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달받고, 값이 없으면 null을 반환
- 반환 유형 : String[]
3) getParameterNames() : 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달 받음
- 반환 유형 : java.util.Enumeration
4) getParameterMap() : 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 전달 받음(Map 객체 타입은(요청 파라미터 이름, 값) 형식으로 구성됨
- 반환 유형 : java.util.Map
- request 내장 객체 사용 예 : 요청 파라미터 값 출력하기
1) request문
2) process문
1) request문
2) process문
요청 HTTP 헤더 관련 메서드의 종류
1) getHeader(String name) : 설정한 name의 헤더 값을 가져옴
- 반환 유형 : String
2) getHeaders(String name) : 설정한 name의 헤더 목록 값을 가져옴
- 반환 유형 : Enumeration
3) getHeaderNames() : 모든 헤더 이름을 가져옴
- 반환 유형 : Enumeration
4) getIntHeader(String name) : 설정한 name의 헤더 값을 정수로 가져옴
- 반환 유형 : int
5) getDateHeader(String name) : 설정한 name의 헤더 값을 시간 값으로 가져옴
- 반환 유형 : long
6) getCookies() : 모든 쿠키 값을 가져옴
- 반환 유형 : javax.servlet.http.Cookie
- request 내장 객체 사용 예 : 요청 HTTP 헤더 정보 값 출력하기
웹 브라우저/서버 관련 메서드의 종류
1) getRemoteAddr() : 웹 브라우저의 IP 주소를 가져옴
- 반환 유형 : String
2) getContentLength() : 웹 브라우저의 요청 파라미터 길이를 가져옴
- 반환 유형 : long
3) getCharacterEncoding() : 웹 브라우저의 문자 인코딩을 가져옴
- 반환 유형 : String
4) getConentType() : 웹 브라우저의 콘텐츠 유형을 가져옴
- 반환 유형 : String
5) getProtocol() : 웹 브라우저의 요청 프로토콜을 가져옴
- 반환 유형 : String
6) getMethod() : 웹 브라우저의 HTTP 요청 메서드(GET, POST)를 가져옴
- 반환 유형 : String
7) getrequestURI() : 웹 브라우저가 요청한 URI 경로를 가져옴
- 반환 유형 : String
8) getContextPath() : 현재 JSP 페이지의 웹 애플리케이션 콘텍스트 경로를 가져옴
- 반환 유형 : String
9) getServerName() : 서버 이름을 가져옴
- 반환 유형 : String
10) getServerPort() : 실행 중인 포트 서버를 가져옴
- 반환 유형 : int
11) getQuerySting() : 웹 브라우저의 전체 요청 파라미터 문자열(물음표(?) 다음 URL에 할당된 문자열)을 가져옴
- 반환 유형 : String
- 웹 브라우저의 정보로는 요청 정보 길이, 전송 방식, 요청 URI 등을, 서버 정보로는 서버 이름과 포트를 출력함
- request 내장 객체 사용 예 : 웹 브라우저/서버 정보 출력하기
1) request문
2) process문
페이지 이동 방법
- 포워드(forward) 방식
- 현재 JSP 페이지에서 이동할 URL로 요청 정보를 그대로 전달하므로 사용자가 최초로 요청한 정보가 이동된 URL에서도 유효함
- 이동된 URL이 웹 브라우저의 주소 창에 나타나지 않고 처음 요청한 URL이 나타나기 때문에 이동 여부를 사용자가 알 수 없음
- 형식 : <jsp:forward page = "이동할 페이지"/>- 리다이렉트(redirect) 방식
- 처음 요청받은 현재 JSP 페이지로부터 이동할 URL을 웹 브라우저로 반환함
- 이 때 웹 브라줘에서는 새로운 요청을 생성하여 이동할 URL에 다시 요청을 전송하므로 처음 보낸 요청 정보가 이동된 URL에서는 유효하지 않음
- 즉 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동함
- 따라서 이동된 URL이 웹 브라우저의 주소 창에 보이는 것임
- 형식 : response.senRedirect("이동할 페이지")
페이지 이동 관련 메서드의 종류
- sendRedirect(String url) : 설정한 URL 페이지로 강제 이동함
- 반환 유형 : void
- response 내장 객체 사용 예 : 페이지 이동하기
1) request문
2) response문
3) 결과
응답 HTTP 헤더 관련 메서드의 종류
1) addCookie(Cookie cookie) : 쿠키를 추가합니다.
- 반환 유형 : void
2) addDateHeader(String name, long date) : 설정한 헤더 이름 name에 날짜/ 시간을 추가함
- 반환 유형 : void
3) addHeader(String name, String value) : 설정한 헤더 이름 name에 value를 추가함
- 반환 유형 : void
4) addIntHeader(String name, int value) : 설정한 헤더 이름 name에 정수 값 value를 추구함
- 반환 유형 : void
5) setDateHeader(String name, long date) : 설정한 헤더 이름 name에 날짜/시간을 설정함
- 반환 유형 : void
6) setHeader(String name, Stringvalue) : 설정한 헤더 이름 name에 문자열 값 value를 설정함
- 반환 유형 : void
7) setIntHeader(String name, int value) : 설정한 헤더 이름 name에 정수 값 value를 설정함
- 반환 유형 : void
8) containsHeader(String name) : 설정한 헤더 이름 name이 HTTP 헤더에 포함되었는지 여부를 확임함. 포함하고 있는경우 true를 반환하고, 그렇지 않은 경우 false를 반환함
- 반환 유형 : boolean
9) getHeader(String name) : 설정한 헤더 이름 name 값을 가져옴
- 반환 유형 : String
- response 내장 객체 사용 예 : 응답 HTTP 헤더에 정보 추가하기
응답 콘텐츠 관련 메서드의 종류
1) getContentType(String type) : 웹 브라우저에 응답할 MIME 유형을 설정함
- 반환 유형 : void
2) setContentType() : 웹 브라우저에 응답할 MIME 유형을 가져옴
- 반환 유형 : String
3) getCharacterEncoding(STring charset) : 웹 브라우저에 응답할 문자 인코딩을 설정함
- 반환 유형 : void
4) setCharacterEncoding() : 웹 브라우저에 응답할 문자 인코딩을 가져옴
- 반환 유형 : String
5) getError(int status_code, STring message) : 웹 브라우저에 응답할 오류(코드 및 오류 메세지)를 설정함
- 반환 유형 : void
6) setStatus(int statuscode) : 웹 브라우저에 응답할 HTTP 코드를 설정함
- 반환 유형 : void
- response 내장 객체 사용 예 : 응답 콘텐츠 설정하기
out 내장 객체 메서드의 종류
1) print(String str) : 설정된 str 값을 웹 브라우저에 출력함
- 반환 유형 : void
2) println(String str) : 설정된 str 값을 웹 브라우저에 출력함. 이때 줄바꿈(\r\n 또는 \n)이 적용되지 않음
- 반환 유형 : void
3) newLine() : 줄바꿈(\r\n 또는 \n)을 출력함
- 반환 유형 : void
4) getBufferSize() : 현재 출력 버퍼의 크기를 가져옴
- 반환 유형 : int
5) getRemaining() : 현재 남아 있는 출력 버퍼의 크기를 가져옴
- 반환 유형 : int
6) clear() : 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하지 않고 비움. 만약 버퍼가 이미 플러시되었다면 IOException이 발생함
- 반환 유형 : void
7) clearBuffer() : 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하지 않고 비움. 만약 버퍼가 이미 플러시되었다면 IOException이 발생하지 않음
- 반환 유형 : void
8) flush() : 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하고 비움
- 반환 유형 : void
9) isAutoFlush() : 출력 버퍼가 채워졌을 떄의 처리를 결정함. 자동으로 플러시하는 경우 true를 반환하고, 그렇지 않은 경우 false를 반환함
- 반환 유형 : boolean
- out 내장 객체 사용 예
1) request문
2) process문