[Day 19 | JSP] JSP 내장 객체

y♡ding·2024년 11월 7일
0

데브코스 TIL

목록 보기
129/163

JSP 내장 객체 (Implicit Objects)

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예외 정보를 포함. 오류 페이지에서 예외 내용을 처리하거나 표시할 때 사용.

예제소스

request 객체로 클라이언트 및 서버 정보 확인

<%@ 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 />");
%>

0개의 댓글

관련 채용 정보