본문 바로가기

WEB/ETC

JSP 내장 객체 9가지 특징

JSP 내장 객체


1. request 
 : javax.servlet.ServletRequest(javax.servlet.http.httpRequest)
   >> client의 http 요청정보를 저장하고 있는 객체
2. response
 : javax.servlet.ServletResponse(javax.servlet.http.httpResponse)
   >>  http 요청에 대한 응답정보를 저장하는 객체
3. session
 : javax.servlet.http.HttpSession
   >> client 가 서버에 접속했을 때 세션정보를 저장한 객체
4. pageContext
 : javax.servlet.jsp.PageContext
   >> 응답 페이지 실행에 필요한 Context정보를 저장한 객체
5. out
 : javax.servlet.jsp.JspWriter
   >> 응답 페이지 전송을 위한 출력 stream
6. application
 : javax.servlet.ServletContext
   >> 동일한 Application 의 Context 정보를 저장하고 있는 객체 
7. config -- 설정에 관련
 : javax.servlet.ServletConfig
   >> 특정 페이지의 서블릿 설정 정볼르 저장하고 있는 객체
8. page
 : java.lang.Object
   >> 특정 페이지의 서블릿 객체(인스턴스화된 객체)
9. exception 
 : java.lang.Throwable
   >> 예외 처리를 위한 객체

 



*** Request Object ***
1. request parameters 와 관련된 method
 : return value  method 
----------------------------------------------------------
     String               getParameter(String name)
  >> name 이란 이름으로 지정된 파라미터에 할당된 값을 리턴 
     지정된 이름이 없는 경우 null을 리턴
     String[]             getParmeterValues(String name)
  >> name 이란 이름으로 지정도니 파라미터의 모든 값을 String 배열로 리턴
     checkbox 같은 tag를 사용했을 때 주로 사용
     Enumeration          getParmeterNames()
  >> 요청에 포함된 모든 파라미터 이름을 java.util.Enumeration  객체로 리턴


2. http header 정보와 관련된 method
 
 : return value  method 
----------------------------------------------------------
     String               getHeader(String headerName)
  >> headerName  으로 지정된 이름의 값을 리턴
     지정된 headerName 이 없는 경우 null을 리턴
     Enumeration          getHeader(String headerName)
  >> 지정된 이름으로 할당된 모든 값을 java.util.Enumeration 객체로 리턴
     Enumeration          getHeaderNames()
  >> HTTP 요청 header 에 포함된 모든 header 이름을 java.util.Enumeration 객체로 리턴
     int                  getIntHeader(String headerName)
  >> headerName 으로 지정된 이름의 값을 integer 타입으로 리턴
     값을 integer 타입으로 변환할 수 없을 경우 NumberFormatException이 발생되고 
     headerName 이 없을 경우에는 -1을 리턴


3. session  정보와 관련된 method

 : return value  method 
----------------------------------------------------------
    HttpSession           getSession()
  >> 요청한 클라이언트에 지정된 HttpSession 객체
    이전에 생성된 HttpSession 객체가 없으면 새로운 객체를 생성
    httpSession           getSession(Boolean create)
  >> create 가 true 일 경우 getSession() 메서드와 동일한 결과를 리턴
    하지만 create 를 false로 지정하면 이전에 생성된 HttpSession 객체가 
    없을 경우 null 을 리턴 한다.
    String                getReqeustedSessionID()
  >> 요청한 클라이언트에 지정된 세션의 ID를 문자열로 리턴
    booelan   isRequestedSessionIdValid()
  >> 요청에 포함된 클라이언트의 세션 ID가 유효하면 true 를 리턴

4. cookie , URL/URI, 요청방식과 관련된 메서드

 : return value  method 
----------------------------------------------------------
   Cookie[]  getCookie()
  >> HTTP 요청 메시지의 헤더에 포함된 쿠키를 javax.servlet.http.Cookie 배열로 리턴
   String    getServerName()
  >> 서버의 도메인명을 문자열로 리턴
   integer  getserverPort()
  >> 서버의 포트번호를 integer 타입으로 리턴
   StringBuffer   getRequestURL()
  >> 요청 URL 을 StringBuffer로 리턴
   String   getRequestURI()
  >> 요청 URI 를 문자열로 리턴
   String   getQueryString()
  >> 요청에 사용된 쿼리 문장을 문자열로 리턴
   String   getRemoteHost()
  >> 클라이언트의 호스트 이름을 문자열로 리턴
   String  getRemoteAddr()
  >> 클라이언트의 주소를 문자열로 리턴
   String   getProtocol()
  >> 요청에 사용된 프로토콜을 문자열로 리턴
   String   getMethod()
  >> 요청에 사용된 요청방식(get, post)를 문자열로 리턴
   String  getContextPath()
  >> 해당 JSP 페이지의 컨텍스트 경로를 문자열로 리턴

%%%%

URL(Uniform Resource Locator) : 인터넷에서 접근가능한 자원의 주소 표현 형식
URI(Uniform Resource Identifier) : 존재하는 자원을 식별하기 위한 일반식별자 규정
        요청된 URL에서 HTTP 프로토콜, 호스트명, port번호를 뺀 것

예) http://127.0.0.1:8080/study/ch04/requestExample1.jsp 에서
URL : http://127.0.0.1:8080/study/ch04/requestExample1.jsp
URI : study/ch04/requestExample1.jsp 


<------------------------------ JSP  페이지 만들기.. ------------------------------------------>

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Header Information</title>
</head>
<body>
 <h1> 헤더 정보 </h1>
 <table border="0" >
  <tr>
   <td>HeaderName</td>
   <td>Value</td>
  </tr>
<%
 Enumeration e = request.getHeaderNames();
 while(e.hasMoreElements()){
  String name = (String)e.nextElement();
%> 
 <tr>
  <td><%= name %></td>
  <td><%=request.getHeader(name) %></td>
 </tr>
<%
 }
 %>
 </table>
 <table border="0">
  <tr>
   <td colspan="2">  <h1> 쿠키 정보 </h1>  </td>>
  </tr>
  <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() %>)&nbsp;&nbsp;
   </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>query</td>
   <td><%=request.getQueryString()%></td>
  </tr>
  <tr>
   <td>클라이언트의 호스트 이름</td>
   <td><%=request.getRemoteHost()%></td>
  </tr>
  <tr>
   <td>클라이언트의 주소</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>



---------------    화면 출력  ----------------------------------




***  Respose Object ***

1. setHeader (String headerName, String value)
 >> 응답에 포함될 헤더 정보에 headerName 의 이름으로 value 값을 설정
2. addCookie (Cookie cookie)
 >> 쿠키를 헤더에 추가
3. sendRedirect (String url)
 >> 지정된 url로 요청을 재전송
4. setContentType (String type)
 >> 응답 페이지의 contentType 을 설정..




***  pageContext Object ***

 : return value  method 
----------------------------------------------------------
  ServletRequest           getRequest()
  >> 클라이언트의 요청정보를 담고 있는 객체를 리턴(request)
  ServletResponse          getResponse()
  >> 요청에 대한 응답 객체를 리턴(response)
  JspWriter    getOut()
  >> 응답 출력 스트림을 리턴(out)
  Object     getPage()
  >> 서블릿 인스턴스 객체를 리턴 (page 내장객체)
  ServletConfig            getServletConfig()
  >> 서블릿의 초기 설정 정볼르 담고 있는 객체(config)
  ServletContext    getServletContext()
  >> 서블릿의 실행 환경정볼르 담 있는 객체를 리턴(application)
  HttpSession    getSession()
  >> 클라이언트의 세션 정보를 담고 있는 객체 리턴(session) 
      forward(String url) -- 전달방식
  >>  현재 페이지의 요청과 응답에 관한 제어권을 url로 지정된 주소로 영구적으로 넘긴다..
     포워드 된 페이지의 요청처리가 종료되면 응답도 종료
      include(String url)  -- 삽입방식
  >> 현재 페이지의 요청과 응답에 관한 제어권을 url로 지정 된 주소로 임시적으로 넘긴다..
    include 된 페이지의 처리가 끝나면 제어권은 다시 원래의 페이지로 돌아온다.
   따라서 include로 지정된 페이지의 내용을 원래 페이지에 삽입하는 효과


*** Session Object ***

 : return value  method 
----------------------------------------------------------
  String   getId()
  >> 해당 세션의 세션 아이디를 문자열로 리턴
     세션 아이디는 세션 객체 생성시에 웹 컨테이너에 의해 자동으로 할당
  long   getCreationTime()
  >> 1970년 1월 1일 00시 00분 00초 부터 해당 세션이 생성된 순간까지의 경과시간을 밀리초로
    계산하여 long형으로 리턴 
  long   getlastAccessedTime()
  >> 세션이 마지막으로 접근된 시간까지의 경과시간을 밀리초로 계산
  integer  getMaxInacticeInterval()
  >> 클라이언트의 요청이 없을 시 서버가 해당 세션을 유지하도록 지정된 시간을 초 단위의 정수로 리턴
  boolean  inNew()
  >> 새로운 세션일 경우 true 리턴
    invalidate()
  >> 세션의 속성값으로 저장된 모든 객체를 반납하고 해당 세션을 종료
    setMaxInactiveInterval(int seconds)
  >> 클라이언트의 요청이 없더라도 세션을 유지할 시간을 초단위로 정수값으로 설정

'WEB > ETC' 카테고리의 다른 글

iBatis Framework 이란?  (0) 2014.03.10
Maven Eclipse 설치  (0) 2014.02.22
HTTP 응답 코드 종류 && HTTP 메소드 종류  (0) 2014.02.22
HTML5 웹 소켓 (Web Socket)  (0) 2014.02.22
JBOSS 설치 환경설정 & JNDI  (0) 2014.02.22