티스토리 뷰

코딩/JSP

[9주 1일차] 내장 객체

ehzim 2023. 12. 4. 17:19

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