728x90
반응형
내장 객체란?
- JSP 페이지가 서블릿으로 변환될 때 JSP 컨테이너가 자동으로 생성해서 제공해주는 객체
- 표현식(expression)과 스크립트릿(scriptlet)에서 프로그램을 편리하게 할 수 있습니다.
내장 객체의 영역
내장 객체의 영역은 다음과 같습니다.
내장 객체 종류
- 페이지 입 · 출력에 관련된 객체
- JSP 페이지가 처리되는 동안의 외부 환경 정보를 제공하는 객체
- JSP 페이지에 관련된 객체
- 에러에 관련된 객체
객체 변수 | 구분 | 영역 | 내용 |
request | interface | request | 클라이언트의 HTTP 요청정보를 저장한 객체 |
response | interface | page | HTTP 요청에 대한 응답정보를 저장한 객체 |
pageContext | class | page | 응답 페이지 실행에 필요한 컨텍스트 정보를 저장한 객체 |
session | interface | session | 클라이언트의 세션 정보를 저장한 객체 |
application | interface | application | 동일한 어플리케이션의 컨텍스트 정보를 저장한 객체 |
config | interface | page | 해당 JSP 페이지가 변환된 서블릿의 설정 정보를 저장한 객체 |
out | class | page | 응답 페이지 전송을 위한 출력 스트림 객체 |
page | class | page | 해당 JSP 페이지가 변환된 서블릿 객체 (this와 같은 역할) |
exception | interface | page | JSP 페이지의 서블릿 실행 시 처리하지 못한 예외 객체 |
속성 조작에 관련된 메소드
- request - 요청 정보나 query 문자열을 추출하는 용도
- response - 응답 헤더 설정이나 Cookie 설정 용도로 사용할 수 있음
이름 | 내용 |
setAttribute(key,value) | 주어진 key에 속성값을 설정 |
getAttribute(key) | 주어진 key에 설정된 값 가져오기 |
getAttributeNames() | 현재 객체에 관련된 모든 속성의 이름 가져오기 |
removeAttribute(key) | 주어진 key에 설정된 속성값을 제거 |
request와 response 내장 객체
<%@ page language="java" contentType="text/html;charset=EUC-KR" pageEncoding="EUC-KR"%>
<%
response.setHeader("Pragma", "no-cache");
if (request.getProtocol().equals("HTTP/1.1")) {
response.setHeader("Cache-Control", "no-cache"); // 응답 헤더
}
%>
<%= request.getMethod() %> // 요청 메소드(GET or POST)
<%= request.getRequestURI() %> // 요청 URI
...
여러 요청 정보를 추출할 수 있고,
응답된 결과에 대한 캐시 처리를 하지 않도록 응답 헤더를 설정했습니다
out 객체
- 대부분의 경우 출력 버퍼에 대해서 신경 쓰지 않고 JSP 페이지를 작성
- 버퍼 사이즈, flush가 되었는지에 따라 수행결과가 달라짐
<%
out.print("이 부분은 아래 clearBuffer()로 인해 출력되지 않습니다");
out.clearBuffer();
out.print("출력 버퍼의 크기 :" + out.getBufferSize());
out.println("Hello World!");
out.print("사용되지 않은 버퍼의 크기 :" +out.getRemaining());
out.flush();
out.print("flush후 사용되지 않은 버퍼의 크기 :"+out.getRemaining());
%>
출력과, 출력에 관한 정보를 추출할 수 있습니다
session 객체
- HttpSession 인터페이스의 객체를 구현한 인스턴스
- page 지시자를 사용해 session="false"를 지정한 경우라면 HttpSession 객체를 직접 생성 후 사용, 아니라면 바로 사용
session.html
<form action=session.jsp method=post>
ID : <input type="text" name="user_name"> <p>
<input type="submit" value="인증">
form 요청을 보냅니다
session.jsp
<%
String name = request.getParameter("user_name"); // form의 user_name
session.setAttribute("member_id", name);
session.getAttribute("member_id"); // 입력한 user_name
%>
setAttribute()로 받아온 정보를 저장하고,
getAttibute()로 다시 가져온 정보로 사용자 인증을 처리할 수 있습니다.
application 객체
- 해당 JSP 페이지가 포함된 웹 어플리케이션 자체
- ServletContext 객체는 서버 기동 시 웹 어플리케이션 당 하나만 생성
서버 명 : <%= application.getServerInfo() %><BR>
지원되는 Servlet API 버전 : <%= application.getMajorVersion() %>
pageContext
- 다른 내장 객체를 액세스할 수 있게 하는 객체
- 어떤 내부 객체의 속성을 얻어 낼 수 있는 메소드를 가짐
- JSP 페이지마다 생성된 구현 서블릿 객체 단위로 존재
- pageContext 객체의 범위는 자신의 서블릿 객체 내부로 제한
반응형
'JSP Servlet' 카테고리의 다른 글
회원인증 (0) | 2021.02.16 |
---|---|
MyBatis API 활용 (0) | 2021.02.08 |
비동기식페이지2(JSON , Ajax) (0) | 2021.02.08 |
비동기식페이지(JQuery,Ajax,JSON) (0) | 2021.02.08 |
회원관리 MVC2+HandlerMapping+JSTL (0) | 2021.02.08 |