JSP는 개발자가 자주 사용하는 객체들을 기본적으로 제공하여 편리하게 사용할 수 있게 합니다. 이러한 객체들은 내장 객체라고 하며, JSP 페이지에서 직접 사용할 수 있습니다.
request
<p>사용자 이름: <%= request.getParameter("username") %></p>
getParameter(String name)
: 이름에 해당하는 단일 요청 파라미터 값을 가져옵니다. 값이 없는 경우 null
을 반환합니다.getParameterValues(String name)
: 같은 이름으로 여러 개의 값이 전달된 경우(예: 체크박스) 문자열 배열 형태로 모든 값을 가져옵니다.getParameterNames()
: 요청에 포함된 모든 파라미터의 이름을 Enumeration
형태로 가져옵니다.getHeader(String name)
: 특정 요청 헤더의 값을 가져옵니다.getHeaders(String name)
: 같은 이름의 여러 헤더가 있을 경우 Enumeration
형태로 모든 헤더 값을 가져옵니다.getHeaderNames()
: 모든 요청 헤더의 이름을 Enumeration
형태로 가져옵니다.getRemoteAddr()
: 클라이언트의 IP 주소를 가져옵니다.getRemoteHost()
: 클라이언트의 호스트 이름을 가져옵니다.getRemotePort()
: 클라이언트가 요청을 보낸 포트 번호를 가져옵니다.getMethod()
: HTTP 요청 방식을 가져옵니다 (GET
, POST
등).getRequestURL()
: 요청 URL을 반환합니다.getRequestURI()
: 요청 URI를 반환합니다.getRequestDispatcher(String path)
: 요청을 다른 JSP나 Servlet으로 포워딩할 때 사용합니다. RequestDispatcher
객체를 반환합니다.forward(HttpServletRequest request, HttpServletResponse response)
: 현재 요청을 지정된 페이지로 전달합니다.include(HttpServletRequest request, HttpServletResponse response)
: 현재 페이지에 다른 페이지의 내용을 포함합니다.response
:서버의 응답 정보를 담고 있는 객체로, 클라이언트에게 전송할 정보나 응답 상태를 설정할 수 있습니다.
response.setContentType("text/html;charset=UTF-8");
out
:클라이언트에게 데이터를 출력하는 데 사용되는 객체로, HTML 콘텐츠를 출력할 수 있습니다.
out.println("Hello, JSP!");
session
:사용자 세션을 관리하는 객체로, 사용자별로 데이터를 저장하고 유지할 수 있습니다.
session.setAttribute("username", "홍길동");
application
:애플리케이션 전역에서 사용할 수 있는 객체로, 모든 사용자에게 공유되는 데이터를 저장할 수 있습니다.
application.setAttribute("appName", "MyJSPApp");
config
, pageContext
, exception
: JSP에서 페이지와 애플리케이션 설정을 가져오거나 예외를 처리할 때 사용하는 객체들입니다.내장 객체 | 설명 |
---|---|
request | 클라이언트의 요청 정보를 포함. HTTP 요청 데이터(폼 데이터, 쿼리 파라미터 등)를 가져올 수 있음. |
response | 서버의 응답 정보를 포함. HTTP 응답 데이터 전송, 리다이렉트 처리 등을 지원. |
out | 클라이언트에게 데이터를 출력하기 위한 객체. JSP 페이지에서 HTML 내용을 출력. |
session | 사용자 세션 관리. 클라이언트와 서버 간의 지속적인 데이터 저장 및 조회 가능. |
application | 애플리케이션 전역 데이터 관리. 모든 사용자가 공유할 수 있는 데이터를 저장. |
config | 서블릿 설정 정보를 포함. 초기화 파라미터나 서블릿 컨텍스트에 접근 가능. |
pageContext | 현재 JSP 페이지의 컨텍스트를 관리. 모든 내장 객체에 대한 참조 제공. |
page | 현재 JSP 페이지를 나타냄. this 키워드와 동일한 역할. |
exception | 예외 정보를 포함. 오류 페이지에서 예외 내용을 처리하거나 표시할 때 사용. |
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
// **클라이언트의 IP 주소를 출력 (IPv4 또는 IPv6 형식으로 반환)**
out.println(request.getRemoteAddr() + "<br />");
// 현재 웹 애플리케이션의 컨텍스트 경로를 출력 (예: "/myapp")
out.println(request.getContextPath() + "<br />");
// 요청된 URI(Uniform Resource Identifier)를 출력 (예: "/myapp/page.jsp")
out.println(request.getRequestURI() + "<br />");
// 요청된 URL(Uniform Resource Locator)을 출력 (예: "http://localhost:8080/myapp/page.jsp")
out.println(request.getRequestURL() + "<br />");
// 서버의 이름을 출력 (예: "localhost" 또는 실제 도메인 이름)
out.println(request.getServerName() + "<br />");
// 서버의 포트 번호를 출력 (예: "8080")
out.println(request.getServerPort() + "<br />");
%>
</body>
</html>
<%
// 요청 헤더 정보를 가져와 클라이언트의 정보를 출력하는 코드
Enumeration e = request.getHeaderNames(); // 요청 헤더 이름들의 열거형 객체를 가져옴
while (e.hasMoreElements()) { // 헤더 이름이 더 있는 동안 반복
String headerName = (String) e.nextElement(); // 다음 헤더 이름을 가져옴
String headerValue = request.getHeader(headerName); // 해당 헤더 이름에 대한 값을 가져옴
out.println(headerName + " : " + headerValue + "<br />"); // 헤더 이름과 값을 출력
}
// **특정 헤더 "user-agent"의 값을 출력하여 클라이언트의 브라우저 정보 표시**
out.println("user-agent: " + request.getHeader("user-agent") + "<br />");
%>