Peony의 기록 창고 🌼
Published 2024. 7. 21. 16:34
[JSP] 4. 내장 객체 JSP
반응형

내장 객체 종류

  • request
    • 반환 유형 : javax.servlet.http.HttpServletRequest
    • 웹 브라우저의 HTTP 요청 정보를 저장
  • response
    • 반환 유형 : javax.servlet.http.HttpServletResponse
    • 웹 브라우저의 HTTP 요청에 대한 응답 정보를 저장
  • out
    • 반환 유형 : javax.servlet.jsp.jsp.jspWriter
    • JSP 페이지에 출력할 내용을 담고 있는 출력 스트림
  • session
    • 반환 유형 : javax.servlet.http.HttpSession
    • 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장
  • application
    • 반환 유형 : javax.servlet.ServletContext
    • 웹 애플리케이션의 콘텍스트 정보를 저장
  • pageContext
    • 반환 유형 : javax.servlet.jsp.PageContext
    • JSP 페이지의 정보를 저장
  • page
    • 반환 유형 : java.lang.Object
    • JSP 페이지를 구현한 자바 클래스
  • config
    • 반환 유형 : javax.servlet.ServletConfig
    • JSP 페이지의 설정 정보를 저장
  • exception
    • 반환 유형 : java.lang.Throwable
    • JSP 페이지의 예외 발생을 처리

 

속성 처리 메소드

request, pageContext, session, application에서 사용 (저장소 어쩌구 ..)

  • setAttribute(String name, Object value)
    • 반환 유형 : void
    • 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장 한다.
  • getAttribute(String name)
    • 반환 유형 : Object
    • 해당 내장 객체의 속성 이름이 name인 속성 값을 가져온다.
  • removeAttribute(String name)
    • 반환 유형 : void
    • 해당 내장 객체의 속성 이름이 name인 속성을 삭제한다.
  • getAttributeNames ()
    • 반환 유형 : java.util.Enumeration
    • 해당 내장 객체의 모든 속성 이름을 가져온다(단. pageContext 내장 객체는 이 메소드를 제공X).
    • pageContext는 로컬 변수랑 별 차이가 없다.

 

request 내장 객체

  • JSP 페이지 에서 가장 많이 사용되는 기본 내장 객체
  • 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보 저장

 

요청 파라미터

  • 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송할 때 전달되는 폼 페이지의 입력된 정보 형태
  • <name=value> 형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송됨

 

요청 파라미터 관련 메소드의 종류

  • getParameter(String name)
    • 반환 유형 : String
    • 요청 파라미터 이름이 name인 값을 전달받는다. 요청 파라미터 값이 없으면 null 반환
  • getParameterValues(String name)
    • 반환 유형 : String[]
    • 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달받는다. 요청 파라미터 값이 없으면 null 반환
  • getParameterNames()
    • 반환 유형 : java.util.Enumeration
    • 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달받는다.
  • getParameterMap()
    • 반환 유형 : java.util.Map
    • 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 전달받는다.

 

request.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>requestFrom.jsp</title>
</head>

<body>

    <h2>Request Form</h2>
    <hr />

    <form method="POST" action="requestResult.jsp">   //POST 방식으로 전송하는 경우 한글이 깨짐
    <fieldset>
        <legend>request form</legend>

        <label for="name">이름</label>
        <input type="text" name="name" id="name" />

        [성별]


        <label for="job">[직업]</label>
        <select name="job" id="job">
            <option>회사원</option>
            <option>전문직</option>
            <option>학생</option>
            <option>무직</option>
        </select><br />

        [관심분야]

        <label for="favorite1">정치</label>
        <input type="checkbox" name="favorite" id="favorite1" value="정치" />
        <label for="favorite2">경제</label>
        <input type="checkbox" name="favorite" id="favorite2" value="경제" />
        <label for="favorite3">사회</label>
        <input type="checkbox" name="favorite" id="favorite3" value="사회" />
        <label for="favorite4">문화</label>
        <input type="checkbox" name="favorite" id="favorite4" value="문화" />

        <input type="submit" value="전송" />
    </fieldset>
    </form>

</body>

</html>

 

requestResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%
    String name = request.getParameter("name");    
%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>requestResult.jsp</title>
</head>

<body>

    <h2>파라미터 정보</h2>

    <h4>이름:<%=name %> </h4>

</body>

</html>

get방식이 아닌, post방식으로 작성할 경우, request.setCharacterEncoding("UFT-8"); 을 추가해줘야한다.

 

 

요청 HTTP 헤더

  • 웹 브라우저는 HTTP헤더에 부가적인 정보를 담아 서버로 전송함

 

요청 HTTP헤더 관련 메소드

종류 반환 유형 설명
getHeader(String name) String 설정한 name의 헤더 값을 가져온다
getHeaders(String name) Enumeration 설정한 name의 헤더 목록 값을 가져온다
getHeaderNames( ) Enumeration 모든 헤더 이름을 가져온다
getIntHeader(String name) int 설정한 name의 헤더 값을 정수로 가져온다
getDateHeader(String name) long 설정한 name의 헤더 값을 시간 값으로 가져온다
gerCookies( ) javax,servlet, http, Cookie 모든 쿠키 값을 가져온다

 

URL(웹 브라우저/서버) 관련 메소드

메소드 반환유형 설명
getRemoteAddr( ) String 웹 브라우저의 IP주소를 가져온다
getContentLength( ) long 웹 브라우저의 요청 파라미터 길이를 가져온다
getCharacterEncoding( ) String 웹 브라우저의 문자 인코딩을 가져온다
gerContentType( ) String 웹 브라운저의 콘텐츠 유형을 가져온다
getProtocol( ) String 웹 브라우저의 요청 프로토콜을 가져온다
getMethod( ) String 웹 브라우저의 HTTP요청 메소드(GET,POST)를 가져온다
getRequestURI( ) String 웹 브라우저의 요청한 URI 경로로 가져온다
getContextPath( ) String 현재 JSP 페이지의 웹 애플리케이션 콘텍스트 경로로 가져온다
getServerName ) String 서버 이름을 가져온다
getServerPort( ) int 실행 중인 서버 포트 번호를 가져온다
getQueryString( ) String 웹 브라우저의 전제 요청 파라미너 문자열(물음표(?) 다음 URL에 할당된 문자열)을 가져온다.

 

속성을 공유할 수 있는 유효 범위

영역 내장 객체 속성의 유효 범위
page pageContext 해당 페이지가 클라이언트에게 서비스를 제공하는 동안 유효
request request 클라이언트의 요청이 처리되는 동안 유효
session session 세션이 유지되는 동안 유효
applicaion application 웹 애플리케이션이 실행되고 있는 동안 유효

 

 

Response 내장 객체

응답 HTTP 헤더 관련 메소드

  • 서버가 웹 브라우저에 응답하는 정보에 헤더를 추가하는 기능을 제공
  • 주로 서버에 대한 정보 저장

 

반응형
profile

Peony의 기록 창고 🌼

@myeongju