티스토리 뷰

정리 노트/JSP

9주차-2일

eyoadgkn 2023. 12. 5. 17:16

내장 객체

내장객체

내장객체는 JSP 페이지에서 사용할 수 있도록 JSP 컨테이너(톰캣) 에 미리 정의된 객체로 종류가 다양합니다.
JSP페이지가 서블릿 프로그램으로 변역이 될 때 JSP 컨테이너가 자동으로 내장 객체를 멤버 변수, 메서드 매개변수 등의 각종 참조 변수로 포함합니다.
그래서 JSP 페이지에 별도의 import문 없이 자유롭게 자용할 수 있습니다.
또한, 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출을 하여 사용할 수 있습니다. 

내장 객체 반환 유형 설명
request javax.servlet.HttpServletRequest 웹 브라우저의 GTTP 요청 정보를 저장합니다
response javax.servlet.HttpServletRespons 웹 브라우저의 HTTP 요청에 대한 응답 정보를 저장합니다.
out javax.servlet.jsp.jsp.jspWriter JSP 페이지에 출력할 내용을 담고 있는 출력 스트림입니다.
sesstion javax.servlet.HttpSesstion 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장합니다.
application javax.servlet.ServletContext 웹 애플리케이션의 콘텍스트 정보를 저장합니다.
pageContext javax.servlet.jsp.PageContext JSP 페이지의 정보를 저장합니다.
page javax.lang.Object JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타냅니다.
config javax.servlet.ServletConfig JSP 페이지의 설정 정보를 저장합니다
exception javax.lang.Throwable JSP  페이지의 예외 발생을 처리합니다.

해당 내장 객체는 서블릿 프로그램에서 모두 _jspService() 메서드 내부에 존재합니다. 그리고 메서드 매개변수인 request, reponse를 비롯해서 pageContext, session, application, config, out, page 등은 메서드 내에서 참조할 수 있는 참조 변수입니다.

모든 내장 객체는 JSP 컨테이너가 관리하는 객체로 이 중에서 reuqest, session, application, pageContext를 이용해 속성을 관리할 수 있습니다. 속성을 각각 내장 객체가 존재하는 동안 JSP 페이지 사이에서 정보를 주고받거나 공유하는데에 사용이 됩니다. 

속성 처리 메서드의 종류

메서드 반환 유형 설명
setAttribute(String name, Object value) void 해당 내장 객체의 속성 이름이 name인 속성 값을 value로
getAttribute(String name) Object 해당 객체의 속성 이름이 name인 속성 값을 가져 옵니다.
removeAttiribute(String name) void 해당 내장 객체의 속성 이름이 name인 속성을 삭제합니다.
getAttributeNames() java.util.Enumeration 해당 내장 객체의 모든 속성 이름을 가져옵니다.(단, pageContext 내장객체는 이 메서드를 제공하지 않습니다.)
request 내장 객체의 기능과 사용법

request 내장객체는 JSP 페이지 에서 가장 많이 사용이 되는 기본 내장 객체로써 웹브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장합니다. 폼 페이지로부터 입력된 데이터를 전달하는 요청 파라미터 값을 JSP 페이지로 가져옵니다. JSP 컨테이너는 웹 브라우저에서 서버로 전달되는 정보를 처리하기 위해 request내장객체를 사용해 사용자의 요구사항을 얻어냅니다.

1.요청 파라미터 관련 메서드

사용자가 폼 페이지에 데이터를 입력한 뒤에 서버에 전송을 할 때 전달되는 폼 페이지의 입력된 정보 형태를 말합니다. 이런 요청 파라미터는 <name=value> 형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송이 됩니다.
<%@ 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.요청 HTTP 헤더 관련 메서드

웹 브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 전송을 합니다 . request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메서드를 제공합니다.

요청 HTTP 헤더 관련 메서드 반환유형 설명
getHeader(String name) String 설정한 name의 헤더 값을 가져옵니다.
getHeaders(String name) Enumeration 설정한 name의 헤더 목록 값을 가져옵니다.
getHeaderNames() Enumeration 모든 헤더 이름을 가져옵니다.
getIntHeader(String name) int 설정한 name의 헤더 값을 정수로 가져옵니다.
getDateHeader(String name) long 설정한 name의 헤더 값을 시간 값으로 가져옵니다.
getCookies() javax.servlet.http.Cookie 모든 쿠키 값을 가져옵니다.


<%@ 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>
	<%
		//모든 헤더의 이름을 가져오면서 en 참조변수에 담는다.
		Enumeration en = request.getHeaderNames();
		//en객체 주소안에 hasMoreElement()메서드가 있을 때까지 반복
		while (en.hasMoreElements())
		{
			//현재의 헤더 이름을 가져오기 위해 en.nextElement()메서드를 작성
			//request에서 반환이 되기 때문에 캐스팅을 해준다.
			String headerName = (String) en.nextElement();
			//설정된 헤더 이름의 값을 가져오도록 request 내장객체 getHeader()메서드를 작성한다.
			String headerValue = request.getHeader(headerName);
		
	%>
	
	<%=headerName %> : <%=headerValue %> <br>
	<%
		}
	%>

</html>​
3.웹 브라우저/서버관련 메서드

request 내장 객체는 웹 브라우저의 요청 및 서버 관련 정보를 얻을 수 있는 다양한 메서드들을 제공합니다.

 

'정리 노트 > JSP' 카테고리의 다른 글

9주차-4일  (0) 2023.12.07
9주차-3일  (0) 2023.12.06
9주차-1일  (0) 2023.12.04
8주차-5일  (0) 2023.12.01
8주차-4일  (0) 2023.11.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함