티스토리 뷰

정리 노트/JSP

9주차-1일

eyoadgkn 2023. 12. 4. 17:40

 

내장객체

내장객체는 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, sesstion, 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 내장객체

requst 내장 객체는 많이 사용되는 기본 객체로써 브라우저에서 jsp페이지로 전달하는 정보를 저장하는 역할을 가집니다.

요청파라미터는 해당 웹 브라우저에서 서버로의 페이지로 전송이 될 때, 가져가는 값을 말합니다. 이때 사용되는 메서드는 getParameter(), getParameterValues(), getParameterNames(), getParameterMap() 
가 있습니다. 해당 요청 파라미터의 값은 입력 양식이 텍스트 유형인 경우 값을 입력하지 않는다면 서버로 빈 문자열로 전송이 됩니다. 하지만 라디오나 체크박스형태의 데이터에서 선택을 하지 않고 전송을 한다면 전달자체가 되지 않습니다.

<%@ 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>

해당 텍스트의 입력 값 데이터를 request에 넣은 뒤 getParameter로 해당 값을 가져옵니다. 여기서 무엇을 가져올 것인지는 name속성의 값을 입력하여 해당 key값을 가져옵니다.

요청 HTTP헤더 관련 메서드

웹브라우저는 HTTP 헤더에 부가적인 정보를 담아 서버로 보내는데, 이떄 request 내장 객체는 헤더 정보나 쿠키 관련 정보를 얻을 수 있는 메서드를 제공합니다. 해당 관련 메서드 종류로는
getHeader(String name), getHeaders(String name), getHeaderNames(), getInHeader(String name),  getDateHeader(String name), getCookies()

<%@ 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>

 

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

9주차-3일  (0) 2023.12.06
9주차-2일  (0) 2023.12.05
8주차-5일  (0) 2023.12.01
8주차-4일  (0) 2023.11.30
8주차-3일 스크립트 태그,디렉티브 태그  (0) 2023.11.29
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함