minlog
article thumbnail

 

JSP 내부 객체란?

JSP내부객체는 JSP 컨테이너가 제공하는 객체로 JSP에서 선언하지 않고 사용할 수 있는 객체

스크립트 요소에서 내부 객체와 동일한 변수명으로 선언할 수 없다.

사용되는 범주에 따라 4가지 형태로 분류된다.

  • JSP 페이지 입출력 관련 내부 객체
  • JSP 페이지 외부 환경 정보 제공 내부 객체
  • JSP 페이지 서블릿 관련 내부 객체
  • JSP 페이지 예외 관련 기본객체

 

 

 

내부객체

내부 객체 설명
request 클라이언트의 요청정보를 입력 ( 파라미터를 포함한 요청을 담고 있는 객체 )
response 클라이언트의 요청에 대한 응답정보를 입력 ( 요청에 대한 응답을 담고 있는 객체  )
out 페이지 내용을 담고 있는 출력 스트림 객체
session 웹브라우저 정보를 유지하기 위한 세션 정보를 담고 있는 객체
application 웹어플리케이션 Context의 모든 페이지가 공유할 데이터를 담고 있는 객체
pageContext JSP 페이지에 대한 정보를 저장 하는 객체
page JSP 페이지를 구현한 자바 클래스의 인스턴스  (서블릭 객체)
config JSP 페이지의 서블릿 설정 데이터 초기화 정보 객체
exception JSP 페이지의 서블릿 실행 시 처리하지 못한 예외 객체

 

 

 

※ reqeust / session / application /pageContext 내부객체는 속성값을 저장하고 읽을 수 있는 메소드를 가지고 있다.

 

메소드 설명
setAttribute(key,value) 주어진 key(이름 등)에 속성값을 연결한다.
getAttributeNames() 모든 속성의 이름을 얻어낸다.
getAttribute(key) 주어진 key에 연결된 속성 값을 얻어낸다
removeAttribut(key) 주어진 key에 연결된 속성 값을 제거한다.

 

 

 

 

1. request

브라우저에서 전달 받은 내용들을 저장해두기 위한 객체이다.

 

내부객체의 요청 파라미터 메소드 설명
String getParameter(name) name에 할당된 값을 반환하며 지정된 파라미터 값이 없으면 null값을 반환
String[] getParameterValue(name) name의 모든 값을 String 배열로 반환
Enumeration getParameterNames() 요청에 사용된 모든 파라미터 이름을 java.util.Enumeration  타입으로 반환
클라이언트 정보 메소드 설명
getContextPath() 컨텍스트경로 반환
getRemoteAdder() 클라이언트 IP 반환
getContentLength() 요청정보 길이 반환
getCaracterEncoding() 요청정보 인코딩 반환
getContentTyep() 요청정보 문서 타입 반환
getMethod() 요청 정보 전송 방식 반환(GET,POST,PUT)
getRequestURL() 요청 URL 반환
getRemoteHost() 클라이언트 호스트 이름 반환
getRemoteAddr() 클라이언트의 주소를 반환
getServerName() 서버 이름 반환
getServerPort() 서버 포트 반환

 

 

 

 

2. response

요청을 시도한 클라이언트로 전송할 응답을 나타내는 데이터 묶음이다.

 

메소드 설명
void setHeader(name,value) 응답에 포함될 header를 설정
void setContentType(type)  출력되는 페이지의 contentType 을 설정
void sendRedirect(url) 지정된 url로 요청 재전송 
html  : a   |  자바스크립트 document.location.href   |  JSP sendRedirect(url) 
String getCharacterEncoding() 응답 페이지의 문자 인코딩 Type을 반환

 

 

 

 

3. out

out 내부객체는 JSP페이지의 결과를 클라이언트에 전송해 주는 출력 스트림을 나타내며

JSP페이지가 클라이언트에게 보내는 모든 정보는 out 객체를 통해서 전달된다.

 

메소드 설명
boolean isAutoFlush() 출력 버퍼가 다 채워져 자동으로 flush했을 경우 true 반환 , 아니면 faluse
int getBufferSize() 출력 버퍼의 전체 크기를 바이트 단위로 반환
int gerRemaining() 출력 버퍼의 남은 양을 바이트 단위로 반환
void clearBuffer() 현재 출력 버퍼에 저장된 내용을 취소
String print(string) String을 브라우저에 출력
void flush() 현제 출력 버퍼의 내용을 flus하여 클라이언트로 전송
void close() 출력 버퍼의 내용을 flush하고 스트림을 닫는다.

 

 

 

 

4. session

클라이언트 요청에 대한 context 정보의 세션과 관련된 정보(데이터)를 저장하고 관리한다.

 

브라우저를 식별하기 위해 자동으로 만들어주는 것이 세션이고

브라우저에 기억하지 시키지 않고 브라우저 관계된 데이터를 서버에 저장하기 위해서 사용하는 기능이다.

 

setAttribute , 해당 세션이 유효한 동안 해당 브라우저에서 언제든 사용할 수 있다.

session.setAttribute("savData",data);
메소드 설명
String getId() 해당 세션의 세션 ID를 반환
long getCreationTime() 세션의 생성된 시간을 반환
long getLastAccessedTime() 클라이언트 요청이 마지막으로 시도된 시간을 반환
void setMaxlanctivelnterval(time) 세션을 유지할 시간을 초단위로 설정
int getMaxInactiveInterval() setMaxInactiveInterval(thime) 로 지정된 값을 반환
boolean isNew() 클라이언트 세션 ID를 할당하지 않은 경우 true값 반환
void invalidate() 해당 세션을 종료

🍫  은행어플 사용자가 아무런 실행을 10분동안 하지 않은면 다시 로그인을 요청 (web.xml 파일 )

<web-app>
    <!-- 분단위 세션 유효시간 설정 -->
    <session-config>
        <session-timeout>1</session-timeout>
    </session-config>
 </ web-app>

 

 

💡  Session   VS   Cookie

 

session서버에 저장 .

ex ) 로그인 된 상태를 저장

 

웹 실행시 서버에 자동으로 만들어지며 연결된 브라우저 식별 용도이다.

해당 브라우저가 사용하는 동안 유지할 값들을 저장한다. 

 

 

cookie브라우저에 저장 시켜 놓는 데이터 조각들이다.

ex )  아이디 기억하기 , 장바구니(비회원이여도 다시 접속시 유지되어 있는 장바구니 상품)

 

브라우저에 저장해 놓고 웹서버로 Request마다 포함하여 전송.

웹 서비스를 이용하는 동안 유지할 데이터를 저장하는 용도

(공개되어도 괜찮은 정보만 브라우저 안에 쿠키 저장소에 쿠키값 저장)

유효범위 동안 브라우저에서 유지된다.

 

유효 범위에 따른 쿠키 종류

  • 세션연결 (세션쿠키)  : 브라우저를 닫아버리면 저장 되어있는 쿠키가 사라짐
  • 시간지정 : 한달, 두달 등 기간동안 유지가 되는 쿠키

 

 

 

 

 

5. application

서블릿 또는 어플리케이션 외부 환경 정보(Context)를 나타내는 객체

 

메소드 설명
String getServerInfo() 서블릿 컨테이너의 이름과 버전을 반환
String getMimeType(file Name) 지정한 파일의 Mime 타입을 반환
String getRealPath(url) URL을 로컬 파일 시스템으로 변경하여 반환
void log(message) 로그 파일이 message를 기록

 

 

 

6. pageContext

현재 JSP 페이지의 Context를 나타내면 pageContext 객체를 통해서 다른 내부 객체에 접근할 수 가 있습니다

 

 

 

 

7. page

JSP 페이지 그 자체를 나타내는 객체 입니다.

그래서 JSP 페이지 내에서 this로 참조 할 수가 있습니다.

<%@ page info = "JSPStudy.co.kr"
    contentType="text/html;charset=EUC-KR"%>
<% 
       String pageInfo = this.getServletInfo();
%>
<h1>Page Example1</h1>
현재 페이지의 info값 : <%=pageInfo%>

 

 

 

8. execption

JSP 페이지에서 발생한 예외를 처리하는 페이지를 지정한 경우 에러 페이지에 전달되는 예외객체

 

메서드 설명
String getMessage() 에러 메시지를 반환
String toString() 에러 실체의 클래스 명과 에러 메세지 반환

🍫 오류시 요청되는 페이지 

//에러페이지로 넘겨줌
<%@ page contentType="text/html;charset=EUC-KR" errorPage="exception2.jsp" %> 

<%
  int one  = 1;
  int zero = 0;
%>
<h1>Exception Example1</h1>
one / zero = <%=one/zero%><p/>

에러 내용 노출할 페이지

<%@ page contentType="text/html;charset=EUC-KR"
                    isErrorPage="true"
%>
<%
   String message = exception.getMessage();
   String objectMessage = exception.toString();
%>
에러 메세지 : <b><%=message%></b><p/>
에러 실체의 클래스명과 에러 메세지  : <b><%=objectMessage%></b><p/>

 

 

 

 

profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!