Rylah's Study & Daily Life
07. JSP Page Implicit Object 본문
1. 내장 객체(Implicit Object)
- 내장객체는 JSP 페이지 내에서 제공하는 특수한 레퍼런스 타입의 변수(또는 객체)로 사용하고자 하는 변수와 메소드로 접근
- JSP 페이지에서 사용하게 되는 특수한 레퍼런스 타입의 변수가 아무런 선언과 객체 생성 없이 사용할 수 있음.
2. 내장 객체(Implicit Object)의 종류
내장 | 객체 리턴 타입(Return Type) | 설명 |
request | javax.servlet.http.HttpServletRequest javax.servlet.ServletRequest |
웹 브라우저의 요청 정보를 저장하고 있는 객체 |
response | javax.servlet.http.HttpServletResponse javax.servlet.ServletResponse |
웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체 |
out | javax.servlet.jsp.JspWriter | JSP 페이지를 출력할 내용을 가지고 있는 출력 스트림 객체 |
session | javax.servlet.http.HttpSession | 하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 저장 객체 |
application | javax.servlet.ServletContext | 웹 애플리케이션 Context의 정보를 저장하고 있는 객체 |
page Context | javax.servlet.jsp.PageContext | JSP에 대한 정보를 저장하고 있는 객체 |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스 객체 |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설명 정보를 저장하고 있는 객체 |
exception | java.lang.Throwable | JSP 페이지에서 예외가 발생한 경우 사용하는 객체 |
request 내장객체
메소드 : 리턴 타입 | 설명 |
getProtocol() : String | 웹 서버로 요청시, 사용 중인 프로토콜을 리턴 |
getServerName() : String | 웹 서버로 요청시, 서버의 도메인 이름을 리턴 |
getMethod() : String | 웹 서버로 요청시, 요청에 사용된 요청 방식(Get, Post, put..)을 리턴 |
getQueryString() : String | 웹 서버로 요청시, 요청에 사용된 QueryString을 리턴 |
getRequestURI() : String | 웹 서버로 요청시, 요청에 사용된 URL로 부터 URI 값을 리턴 |
getRemoteHost() : String | 웹 서버로 정보를 요청한 웹 브라우저의 호스트 이름을 리턴 |
getRemoteAddr() : String | 웹 서버로 정보를 요청한 웹 브라우저의 IP 주소를 리턴 |
getServverPort() : int | 웹 서버로 요청시, 서버의 Port 번호를 리턴 |
getContextPath() : String | 해당 JSP 페이지가 속한 웹 애플리케이션 Context Path를 리턴 |
getHeader(name) : String | 웹 서버로 요청시, HTTP 요청 헤더(header) 헤더 이름 name에 해당하는 속성 값을 리턴 |
getHeaderNames() : Enumeration | 웹 서버로 요청시, HTTP 요청 헤더(header에 있는 모든 헤더 이름을 리턴 |
response 내장 객체
메소드 | 설명 |
void setHeader(name, value) | 헤더 정보의 값을 수정하는 메소드, name에 해당하는 정보를 value 값으로 설정 |
void setContentType(type) | 웹 브라우저 요청의 결과로 보일 페이지의 ContentType을 설정 |
void sendRedirect(url) | 페이지를 이동시키는 메소드, url로 주어진 페이지로 제어가 이동 |
out 내장 객체
메소드 | 설명 |
boolean isAutoFlush() | 출력 버퍼가 다 찼을 때 처리 여부를 결정, 자동인 경우 true, 아니면 false |
int getBufferSize() | 출력 버퍼의 전체 크기를 리턴 |
int getRemaining() | 현재 남아 있는 출력 버퍼의 크기를 리턴 |
void clearBuffer() | 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하지 않고 비움 |
String println(str) | 주어진 str 값을 웹 브라우저에 출력. 이때 줄바꿈은 적용되지 않음 |
void flush() | 현재 출력 버퍼에 저장되어있는 내용을 웹 브라우저에 전송하고 비움 |
void close() | 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하고 출력 스트림을 닫음 |
pageContext 내장 객체
메소드 : 리턴 타입 | 설명 |
getRequest() : ServletRequest | 페이지 요청 정보를 가지고 있는 request 내장 객체를 리턴 |
getResponse() : ServletResponse | 페이지 요청에 대한 응답 정보를 가지고 있는 response 내장 객체를 리턴 |
getOut() : JapWriter | 페이지 요청에 대한 출력 스트림인 out 내장 객체를 리턴 |
getSession() : HttpSession | 요청한 웹 브라우저의 세션 정보를 담고 있는 session 내장 객체를 리턴 |
getServletContext() : ServletContext | 페이지에 대한 서블릿 실행 환경 정보를 담고 있는 application 내장 객체를 리턴 |
getPage() : Object | page 내장 객체를 리턴 |
getServletConfig() : ServletConfig | 해당 페이지의 서블릿 초기 정보 설정을 담고 있는 config 내장 객체 생성 |
getException() : Exception | 실행 중에 발생하는 에러 페이지에 대한 예외 정보를 가진 exception 내장 객체 리턴 |
session 내장 객체
메소드 : 리턴 타입 | 설명 |
getId() : String | 웹 브라우저에 대한 고유한 세션 ID를 리턴 |
getCreationTime() : long | 해당 세션이 생성된 시간을 리턴 |
getLastAccessedTime() : long | 웹 브라우저 요청이 시도된 마지막 접근 시간을 리턴 |
setMaxInactiveInterval(time) : void | 해당 세션을 유지할 시간을 초단위로 설정 |
getMaxInactiveInterval() : int | 기본 값은 30분으로 setMaxInactiveInterval(time)로 지정된 값을 리턴 |
isNew() : boolean | 현재 웹 브라우저가 새로 로딩된 세션의 경우 true 값을 리턴 |
invalidate() : void | 현재 정보의 유지로 설정된 세션의 속성 값을 모두 제거, 세션 무효화에 사용 |
application 내장 객체
메소드 : 리턴 타입 | 설명 |
getServerInfo() : String | 웹 컨테이너의 이름과 버전을 리턴 |
getMimeType(fileName) : String | 지정한 파일의 MIME 타입을 리턴 |
RealPath(path) : String | 지정한 경로르레 웹 애플리케이션 시스템상의 경로로 변경하여 리턴 |
log(message) : void | 로그 파일에 message를 기록 |
config 내장 객체
메소드 : 리턴 타입 | 설명 |
getInitParameterNames() : Enumeration | 모든 초기화 파라미터 이름을 리턴 |
getInitParameter(name) : String | 이름이 name인 초기화 파라미터 값을 리턴 |
getServletName() : String | 서블릿 이름을 리턴 |
getServletContext() : ServletContext | 실행하는 서블릿 ServletContext 객체를 리턴 |
page 내장 객체
- JSP 그 자체를 나타내는 객체, this로 자기 자신 참조 가능
- 웹 컨테이너는 Java만을 스크립트 언어로 지원, 다른 언어를 허용하려면 page 객체를 참조할 수 있음
exception 내장 객체
- JSP 페이지에서 예외가 발생할 경우, 예외를 처리할 페이지에 전달되는 객체
- exception 객체는 page Directive에 isErrorPage 속성을 true로 지정한 JSP 페이지에서만 사용 가능
메소드 : 리턴 타입 | 설명 |
getMessage() : String | 발생한 예외의 메시지를 리턴 |
toString() : String | 발생한 예외 클래스명과 메시지를 리턴 |
printStackTrace() : String | 발생한 예외를 역추적하기 위해 표준 예외 스트림을 출력, 예외 발생할 곳을 찾을 때 사용 |
3. 내장 객체(Implicit Object)의 영역(Scope)
- 웹 애플리케이션은 page, request, session, application이라는 4개의 영역을 가지고 있다. 기본 객체 영역은 객체의 유효기간이라고 부르며, 객체를 누구와 공유할 것인가를 나타낸다.
- page 영역은 웹 브라우저의 요청이 들어오면 이때 단 한 개의 페이지만 대응이 된다. 따라서 page 영역은 객체를 하나의 페이지 내에서만 공유한다.
- request 영역은 한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응된다. 따라서 웹 브라우저의 한 번의 요청에 단지 한 개의 페이지만 요청될 수 이쏙, 때에 따라 같은 request 영역이면 두 개의 페이지가 같은 요청을 공유할 수 있다.
- session 영역은 하나의 웹 브라우저 당 1개의 session 객체가 생성된다. 즉, 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 객체를 공유한다.
- application 영역은 하나의 웹 애플리케이션 당 1개의 application 객체가 생성된다. 즉, 같은 웹 애플리케이션에 요청되는 페이지들은 같은 객체를 공유한다.
1. JSP 페이지 내에서 제공하는 9개의 내장 객체를 나열하고 그 객체가 하는 일을 간단히 기술하시오.
내장 | 객체 리턴 타입(Return Type) | 설명 |
request | javax.servlet.http.HttpServletRequest javax.servlet.ServletRequest |
웹 브라우저의 요청 정보를 저장하고 있는 객체 |
response | javax.servlet.http.HttpServletResponse javax.servlet.ServletResponse |
웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체 |
out | javax.servlet.jsp.JspWriter | JSP 페이지를 출력할 내용을 가지고 있는 출력 스트림 객체 |
session | javax.servlet.http.HttpSession | 하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 저장 객체 |
application | javax.servlet.ServletContext | 웹 애플리케이션 Context의 정보를 저장하고 있는 객체 |
page Context | javax.servlet.jsp.PageContext | JSP에 대한 정보를 저장하고 있는 객체 |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스 객체 |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설명 정보를 저장하고 있는 객체 |
exception | java.lang.Throwable | JSP 페이지에서 예외가 발생한 경우 사용하는 객체 |
2. 속성 값을 저장하고 읽을 수 있는 메소드인 setAttribute() 메소드와 getAttribute 메소드를 제공하는 내장 객체는?
- request, session, application, pageContext
3. 다음은 학번 이름 전공을 입력해서 화면에 표시하는 프로그램이다. problem07_03_fom.jsp의 소스와 problem07_03Pro.jsp 페이지의 소스가 제공되어있다 이 소스들을 완성하고 실행하세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>07_03 입력</title>
</head>
<body>
<h2>정보를 입력하세요</h2>
<form method="post" action="problem07_03Pro.jsp">
학번 : <input type="text" name="stdNum"><br>
이름 : <input type="text" name="stdName"><br>
전공 : <select name="major">
<option value="0" selected>=선택하세요=</option>
<option value="컴퓨터공학">컴퓨터공학</option>
<option value="전자공학">전자공학</option>
<option value="기계공학">기계공학</option>
</select><br>
<input type="submit" value="입력완료">
</form>
</body>
</html>
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>07_03정보</title>
</head>
<body>
<h2>입력한 정보</h2>
<%request.setCharacterEncoding("UTF-8"); %>
<%
String stdNum = request.getParameter("stdNum");
String stdName = request.getParameter("stdName");
String major = request.getParameter("major");
%>
학번 : <%=stdNum %> <br>
이름 : <%=stdName %> <br>
전공 : <%=major %> <br>
</body>
</html>
|
cs |
4. 다음에서 설명하는 객체의 영역을 기술하세요.
하나의 웹 브라우저당 1개의 객체가 생성된다. 따라서 같은 웹 브라우저 내에서 요청하는 페이지들은 같은 객체를 공유하게 된다. |
세션
'Web Study > JSP' 카테고리의 다른 글
09. JSP Page Error (0) | 2022.03.20 |
---|---|
08. JSP Page Action Tag (0) | 2022.03.19 |
06. JSP Page Operator, Control Flow, UTF-8 (0) | 2022.03.16 |
05. JSP Page Script (0) | 2022.03.16 |
04. JSP Page Directive (0) | 2022.03.15 |