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() %>) </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
결과가 다음과 같이 파일의 이름과 구조가 그대로 노출되기 때문에 잘 쓰이지는 않는다..!
반응형