본문 바로가기
JSP

3. 내장객체

by 김마리님 2020. 6. 1.

JSP는 다양한 내장객체를 가지고 있다. 이로 인해 개발자는 특별한 선언 없이 코드에서 선언된 이름으로 사용할 수 있다.

객체 변수명 설명
request 클라이언트의 http 정보를 저장한 객체
response http 요청에 대한 응답 정보를 저장한 객체
session 클라이언트의 세션 정보를 저장한 객체
out 응답 페이지 전송을 위한 출력 스트림
application 동일한 애플리케이션의 컨텍스트 정보를 저장한 객체
exception 예외처리를 위한 객체

이 중 자주 쓰이는 request와 response 객체의 관련 메소드를 보자.

 

-request 객체와 함께 쓰이는 메소드

리턴 타입 메소드명 설명
HttpSession getSession(Boolean) true의 경우 HttpSession 객체 반환, false의 경우 null 리턴
String getRequestedSessionId() 요청한 클라이언트에 지정된 세션의 ID를 문자열로 나타냄
boolean isReqestedSessionIdValid() 요청에 포함된 클라이언트의 세션ID가 유효하면 true, 아니면 false 리턴 
Cookie[] getCookies() Http 요청 메세지에 포함된 쿠키를 Cookie 배열로 리턴
String getServerName() 서버의 도메인 명을 문자로 리턴
int getServerPort() 서버의 포트번호를 리턴
StringBuffer getRegetRequestURL() 요청 URL을 StringBuffer로 리턴
String getRequestURI() 요청 URI을 String으로 리턴
String getQueryString() 요청에 사용된 퀴리 문장을 문자열로 리턴
String getRemoteHost() 클라이언트의 호스트 이름을 문자열로 리턴
String getRemoteAddr() 클라이언트의 IP주소를 문자열로 리턴
String getProtocol() 요청에 사용된 프로토콜 이름을 문자열로 리턴
String getMethod() 요청에 사용된 요청방식을 문자열로 리턴
String getgetContextPath() 해당 JSP 페이지의 컨텍스트 경로를 문자열로 리턴

이 메소드의 예시를 보자

 

-requestTest3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Request Test3</title>
<style>
h1{
	text_align:center;
}
table{
	margin: auto;
	width: 600px;
	border: 1px solid red;
}
</style>
</head>
<body>
<h1>쿠키,url/uri, 요청방식에 관련된 정보 예제</h1>
<table border="1">
	<tr>
		<td>쿠키 정보</td>
			<%
			Cookie[] cookie=request.getCookies();
			if(cookie==null){
			%>
		<td>쿠키가 존재하지 않습니다.</td>
			<%
			}else{
				for(int i=0;i<cookie.length;i++){
			%>
		<td><%=cookie[i].getName()%>(<%=cookie[i].getValue() %>)&nbsp;&nbsp;</td>
			<%
				}
			}
			%>		
	</tr>
	<tr>
		<td>서버 도메인 명</td>
		<td><%=request.getServerName() %></td>	
	</tr>
	<tr>
		<td>서버 포트번호</td>
		<td><%=request.getServerPort() %></td>	
	</tr>
	<tr>
		<td>요청 url</td>
		<td><%=request.getRequestURL() %></td>	
	</tr>
	<tr>
		<td>요청 uri</td>
		<td><%=request.getRequestURI() %></td>	
	</tr>
	<tr>
		<td>요청 쿼리</td>
		<td><%=request.getQueryString() %></td>	
	</tr>
	<tr>
		<td>클라이언트 호스트명</td>
		<td><%=request.getRemoteHost() %></td>	
	</tr>
	<tr>
		<td>클라이언트 IP주소</td>
		<td><%=request.getRemoteAddr() %></td>	
	</tr>
	<tr>
		<td>프로토콜</td>
		<td><%=request.getProtocol() %></td>	
	</tr>	
	<tr>
		<td>요청방식</td>
		<td><%=request.getMethod() %></td>	
	</tr>
	<tr>
		<td>컨텍스트 경로</td>
		<td><%=request.getContextPath() %></td>	
	</tr>								
</table>

</body>
</html>

 

-response 객체와 함께 쓰이는 메소드

리턴 타입 메소드명 설명
- setHeader(String HeaderName, String HeaderValue) 헤더정보에 매개변수 값을 추가
- addCookie(Cookie cookie) 쿠키객체를 헤더에 추가
- sendRedirect(String url) 지정된 url로 요청 재전송
- setContextType(String Type) 응답 페이지의 ContentType 설정

 

간단한 예시를 보자

 

- responseTest1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	response.sendRedirect("responseTest2.jsp");
%>

 

-resposeTest2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Response Test</title>
</head>
<body>
<h1>
현재 페이지는 responseTest1.jsp에 의해<br/>
리다이렉트된 페이지입니다.
</h1>

</body>
</htm

 

결과가 다음과 같이 파일의 이름과 구조가 그대로 노출되기 때문에 잘 쓰이지는 않는다..!

반응형

'JSP' 카테고리의 다른 글

4. JSTL  (0) 2020.06.03
3. EL  (0) 2020.06.03
JWT  (0) 2020.06.01
2. 쿠키  (0) 2020.06.01
Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(5) - 세션과 로그아웃  (0) 2020.06.01