[ JSP ] 7장. 내장객체
[ 내장 객체 ] 📕
내장객체란?
- JSP페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체.
- JSP페이자가 서블릿 프로그램으로 번역될 때 JSP 컨테이너가 자동으로 내장객체를 멤버 변수, 메서드 매개변수 등의 각종 참조 변수(객체)로 포함
- import문 없이 자유롭게 사용할 수 있음.
- 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고 직접 호출하여 사용가능
내장 객체 | 변환 유형 | 설명 |
---|---|---|
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.servlet.jsp.PageContext | JSP 페이지의 정보를 저장 |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타냄 |
cofig | javax.sevlet.ServletConfig | JSP페이지의 설정 정보를 저장 |
exception | java.lang.Thorwable | JSP페이지의 예외 발생을 처리 |
[ 속성 ] 📙
속성은 각각의 내장 객체가 존재하는 동안 JSP페이지 사이에서 정보를 주고 받거나 공유하는데 사용
메서드 | 반환 유형 | 설명 |
---|---|---|
setAttribute(String name, Object Value) | void | 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장 |
getAttribute(String name) | Object | 해당 내장 객체의 속성 이름이 name인 속성 값을 가져옴 |
removeAttribute(String name) | void | 해당 내장 객체의 속성 이름이 name인 속성을 삭제 |
getAttributeNames() | java.util.Enumeration | 해당 내장 객체의 모든 속성 이름을 가져옴 (단, pageContext 내장 객체는 이 메서드를 제공하지 않음 |
[ Request 내장 객체 ] 📒
요청 파라미터 관련 메서드 | 반환 유형 | 설명 |
---|---|---|
getParameter(String name) | String | 요청 파라미터 이름이 name인 값을 받음, 요청 파라미터가 존재하지 않으면 null값 반환 |
getParameterValues(String name) | String[] | 모든 요청 파라미터 이름이 name인 값을 배열 형태로 받음, 요청 파라미터가 존재 하지 않을 시 null값 반환 ex) 체크박스와 같은 여러 개의 값을 입력 받을 수 있는 타입에 사용 |
getParameterNames() | java.util.Enumeration | 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 받음 |
getParameterMap() | java.util.Map | 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 받음 Map 객체 타입은 (요청 파라미터의 이름, 값) 형식으로 구성 |
[ Header 관련 메서드 ] 📗
요청 HTTP 헤더 관련 메서드 | 반환 유형 | 설명 |
---|---|---|
getHeader(String name) | String | 설정한 name의 헤더 값을 가져옴 |
getHeaders(String name | Enueration | 설정한 name의 헤더 목록 값을 가져옴 |
getHeaderNames() | Enumeration | 모든 헤더 이름을 가져옴 |
getIntHeader(String name) | int | 설정한 name의 헤더 값을 정수로 가져옴 |
getDateHeader(String name) | long | 설정한 name의 헤더 값을 시간 값으로 가져옴 |
getCookies() | javax.servlet.Cookie | 모든 쿠키 값을 가져옴 |
<한글 페이지 작성시>
request.setCharacterEncoding 웹 브라우저에 응당할 문자 인코딩을 설정하는 코드 작성 필수.
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
<%
Enumeration en = request.getHeaderNames(); //Enumeration 배열에 헤더 이름들을 저장
while(en.hasMoreElements()) { //en에 값이 있으면
String headerName = (String) en.nextElement(); // 값을 가져오고 다음 값으로 이동시켜 놓음
String headerValue = request.getHeader(headerName);
%>
<%=headerName%> : <%=headerValue %><br>
<%
}
%>
</body>
HeaderName들은 외우지 않아도 될꺼 같다고 생각하지만, 필요한 경우를 대비해 어떠한 헤더정보를 찾기위해 어떠한 코드를 짜야하는지 외우자.
위와 같이 작성 시
host, language, protocol등 모든 값이 출력 된다.
[ Response 내장 객체 ] 📘
response 내장 객체는 사용자의 요청을 처리한 결과를 서버에서 웹 브라우저에 전달하는 정보를 저장.
즉, 서버는 응답 헤더와 요청 처리 결과 데이터를 웹 브라우저에 보냄.
[ NOTE ]
- 포워드(forward) 방식 : 현재 JSP페이지에서 이동할 URL로 요청 정보를 그대로 전달하여 사용자가 최초로 요청한 정보가 이동된 URL에서도 유효함. (그러나 이동된 URL이 웹 브라우저에 나타나지 않고 처음 요청한 URL이 나타나기 때문에 이동 여부를 알 수 없음.
<jsp:forward page="이동할 페이지" />
- 리다이렉트(redirect) 방식 : 처음 요청받은 현재 JSP 페이지로부터 이동할 URL을 웹브라우저로 반환함. 이때, 웹 브라우저에서는 새로운 요청을 생성하여 이동할 URL에 다시 요청을 전송하므로 처음 보낸 요청 정보가 이동된 URL에 유효하지 않음. 즉, 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동. 따라서 이동된 URL이 웹 브라우저의 주소 창에 보임.
response.sendRedirect("이동할 페이지")
메서드 | 반환 유형 | 설명 |
---|---|---|
sendRedirect(String url) | void | 설정한 URL 페이지로 강제 이동 |
<html>
<head>
<title>Implicit Objects</title>
</head>
<body>
<%
response.sendRedirect("http://www.google.com");
%>
</body>
</html>
[ Out 내장 객체 ] ✍🏻
출력스트림 객체
메서드 | 반환 유형 | 설명 |
---|---|---|
print(String str) | void | 설정된 str값을 웹브라우저에 출력 |
println(String str) | void | 설정된 str값을 웹 브라우저에 출력하고 줄바꿈 개행(\n)이 이루어지지 않음 |
newLine | void | 줄바꿈 개행(\n)을 출력 |
getBufferSize | int | 현재 출력 버퍼의 크기를 출력 |
getRemaining() | int | 현재 남아있는 버퍼 크기를 가져옴 |
clear() | void | 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 보내지 않고 비움 만약 버퍼가 이미 플러시되었다면 IOException이 발생함 |
clearBuffer() | void | 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 보내지 않고 비움 만약 버퍼가 이미 플러시되었다면 IOException이 발생하지 않음 |
flush() | void | 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하고 비움 |
isAutoFlush() | boolean | 출력버퍼가 채워졌을 때의 처리를 결정, 자동으로 플러시 하는 경우 true를 반환 그렇지 않은 경우 false를 반환 |
Author And Source
이 문제에 관하여([ JSP ] 7장. 내장객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tpdlqj0514/JSP-7장.-내장객체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)