티스토리 뷰
Chapter05. 내장 객체
1. 내장 객체의 개요
내장 객체는 미리 만들어져서 동작하는 클래스이다.
(자바에서 object 클래스랑 비슷한 것)
따로 import 문이 없어도 사용할 수 있다.
스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용할 수 있다.
내장 객체의 종류
내장 객체 | 반환 유형 | 설명 |
request | javax.servlet.http.HttpServletRequest | 웹브라우저의 HTTP 요청 정보를 저장한다. |
response | javax.servlet.http.HttpServletResponse | 웹 브라우저의 HTTP 요청에 대한 응답 정보를 저장한다. |
out | javax.serv;et.jsp.jspWriter | JSP 페이지에 출력할 내용을 담고 있는 출력 스트림이다. |
session | javax.servlet.http.HttpSession | 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장한다. |
application | javax.servlet.ServletContext | 웹 애플리케이션의 콘텍스트 정보를 저장한다. |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지의 정보를 저장한다. |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타낸다. |
config | javax.servlet.ServletConfig | JSP 페이지의 설정 정보를 저장한다. |
exception | java.lang.Throwable | JSP 페이지의 예외 발생을 처리한다. |
모든 내장 객체는 JSP 컨테이너가 관리하는 객체이다.
이 중 request, session, application, pageContext를 이용하여 속성을 관리할 수 있다.
속성이란 각각 내장 객체가 존재하는 동안 JSP 페이지 사이에서 정보를 주고받거나 공유하는데 사용된다.
*page(현재페이지만), request(1회성), session(다회성), application(소멸X)
속성 처리 메소드의 종류
메소드 | 반환 유형 | 설명 |
setAttribute(String name(키),Object value(속성)) | void | 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장한다. |
getAttribute(String name) | Object | 해당 내장 객체의 속성 이름이 name인 속성 값을 가져온다. |
removeAttribute(String | void | 해당 내장 객체의 속성 이름이 name인 속성을 삭제한다. |
getAttributeNames() | java.util.Enumeration | 해당 내장 객체의 모든 속성 이름을 가져온다. (단, pageContext 내장 객체는 이 메소드를 제공하지 않는다.) |
2. request 내장 객체의 기능과 사용법
2-1. 요청 파라미터 관련 메소드
요청 파라미터 관련 메소드의 종류
요청 파라미터 관련 메소드 | 반환 유형 | 설명 |
getParameter(String name) | String | 요청 파라미터 이름이 name인 값을 전달받는다. 요청 파라미터 값이 없으면 null을 반환한다. |
getParameterValues(String name) | String[] | 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달받는다. 요청 파라미터 값이 없으면 null을 반환한다. |
getParameterNames() | java.util.Enumeration | 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달받는다. |
getParameterMap() | java.util.Map | 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 전달 받는다. [Map 객체 타입은 (요청 파라미터 이름, 값) 형식으로 구성된다.] |
예제 5-1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="request01_process.jsp" method="post">
<p> 아 이 디 : <input type="text" name="id">
<p> 비밀번호 : <input type="text" name="passwd">
<p> <input type="submit" value="전송" />
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String userid = request.getParameter("id");
String password = request.getParameter("passwd");
%>
<p> 아이디 : <%=userid %>
<p> 비밀번호 : <%=password %>
</body>
</html>
2-2. 요청 HTTP 헤더 관련 메소드
웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 전송한다.
이때 헤더는 전송을 위해 덧붙여 전달되는 것이다.(부가적으로 필요한 정보)
request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메소드를 제공한다.
요청 HTTP 헤더 관련 메소드의 종류
요청 HTTP 헤더 관련 메소드 | 반환 유형 | 설명 |
getHeader(String name) | String | 설정한 name의 헤더 값을 가져온다. |
getHeaders(String name) | Enumeration | 설정한 name의 헤더 목록 값을 가져온다. |
getHeaderNames() | Enumeration | 모든 헤더 이름을 가져온다. |
getIntHeader(String name) | int | 설정한 name의 헤더 값을 정수로 가져온다. |
getDateHeader(String name) | long | 설정한 name의 헤더 값을 시간 값으로 가져온다. |
getCookies() | javx.servlet.http.Cookie | 모든 쿠키 값을 가져온다. |
ex) request 내장 객체 사용 예 : 요청 HTTP 헤더 정보 값 출력하기
예제 5-2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Enumeration en = request.getHeaderNames();
while (en.hasMoreElements()){
String headerName = (String) en.nextElement();
String headerValue = request.getHeader(headerName);
%>
<%=headerName %> : <%=headerValue %><br>
<%
}
%>
</body>
</html>
request 내장 객체 중 getHeaderNames();을 사용하므로 모든 헤더 이름을 가져오도록 했다.
가져 온 모든 헤더 이름을 Enumeration 객체 타입의 변수 en에 저장한다.
이름을 담은 en의 hasMoreElements()를 통해 저장된 헤더가 존재하는 동안 반복하는 while문을 실행한다.
헤더 이름을 가져 올 수 있도록 en의 nextElement()메소드를 작성한다.
'코딩 > JSP' 카테고리의 다른 글
웹쇼핑몰 상품 상세 정보 표시하기 (1) | 2023.12.06 |
---|---|
[9주차 2일] JSP (1) | 2023.12.05 |
웹쇼핑몰 (0) | 2023.12.01 |
[8주 5일차] 액션 태그 (1) | 2023.12.01 |
[8주 4일차] 액션 태그 (1) | 2023.11.30 |
- Total
- Today
- Yesterday