728x90
====================
application 오브젝트
====================

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

application 객체는 javax.servlet.Servletcontext 객체 타입으로 제공된다
 
---------------------------------
메소드                       설명
---------------------------------
 String  getServerInfo()   서버정보를 구한다.( 웹 컨테이너 이름과 버전 리턴,JSP컨테이너에 대한 정보 )

 String getMimeType(fileName)  지정한 파일의 MIME 타입을 리턴한다

    String fn= request.getParameter("filename");
    String contentType = application.getMimeType(fn);


 String getMajorVersion()  서버가 지원하는 서블릿규약의 메이저 버전을 리턴한다.(정수부분)

 String getMinorVersion()  서버가 지원하는 서블릿규약의 마이너 버전을 리턴한다.(소수부분)

 String getRealPath(url) - 지정된 url 실제 경로 알아내기
 
 void  log(message)    - message 내용을 파일에 기록하기  ( C:\Tomcat 5.0\logs 에 저장 )
                         로그 파일에 메세지를 기록한다 

-----에제-* application.jsp---------------------------------------
<%@ page
contentType="text/html;charset=euc-kr"
import="java.io.*"
%>

<html>
	<body>
		<%
		String serverInfo=application.getServerInfo();
                String mimeType=application.getMimeType("RequestTest.jsp");
		String realPath=application.getRealPath("/");
		
		int major=application.getMajorVersion();
		int minor=application.getMinorVersion();
		
		application.log("로그기록");
		
		%>
		서버 정보: <%= serverInfo %><br>
                MIME Type : <%= mimetype%>
		도큐먼트루트의 실제 경로: <%= realPath %><br>

		major 버전 :<%= major%><br>
		minor 버전 :<%= minor%><br>

	</body>
</html>


===========================================================================
pageContext 내장 객체
---------------------------------------------------------------------------

pageContext 객체는 현재 JSP페이지의 context를 나타내며

pageContext내부 객체를 통해서 다른 내부 객체에 접근할 수 있다 


예를 들어 out 내장 객체를 구하고자 할 경우의 코드는 다음과 같다 
JspWriter pageOut=pageContext.getOut();


----------------------------------------------------------------------------
리턴형                메서드                           설명
----------------------------------------------------------------------------
ServletRequest   getRequest()           request 기본객체를 구한다.

ServletResponse  getResponse()           response 기본객체를 구한다.

JspWriter            getOut()                 out 기본객체를 구한다.


HttpSession      getSession()           session 기본객체를 구한다.

                                        요청한 클라이언트의 세션 정보를 담고 있는 객체를 반환 


ServletContext    getServletContext()    application 기본객체를 구한다.

                                        페이지에 대한 서블릿 실행 환경 정보를 담고 있는 객체를 반환 


ServletConfig    getServletConfig()     config 기본객체를 구한다.

                                        페이지의 서블릿 초기정보의 설정 정보를 담고 있는 객체를 반환 


Exception      getException()            exception 기본객체를 구한다.

Object         getPage()                  page 기본객체를 구한다.




================================================================================
config  내장 객체  (javax.servlet.ServletConfig)
---------------------------------------------------------------------------------

Enumeration  getInitParameterNames()   모든 초기 파라미터 이름을 리턴

String    getInitParameter(name)     이름이 name인 초기 파라미터의 값 리턴

String   getServletName()         서블릿의 이름을 리턴

ServletContext getServletConfig()   실행하는 서블릿 ServletContext 객체를 리턴

=====예제 ======

<%= config.getServletName()%><p>
<%= config.getServletContext()%><p>

출력결과
jsp
org.apache.catalina.core.ApplicationContextFacade@e41d4a


=====================================================================
page 내장 객체 : 

jsp 객체는 JSP페이지 그 자체를 나타내는 객체이다 

그래서 this 키워드로 자기 자신을 참조할 수 있다 

javax.servlet.jsp.HttpJspPage 클래스 타입으로 제공하는 JSP 내부 객체이다 
---------------------------------------------------------------------
메서드 

getServletInfo() :info 속성값을 얻어낸다
 
=====예제 ======

<%@ page info="예제"%>

<h2> page 내장 객체</h2>

현재 페이지에 대한 정보 :
<%= this.getServletInfo()%>


<h2> config  내장 객체 </h2>

<%= config.getServletName()%><p>
<%= config.getServletContext()%><p>


<h2> pageContext  내장 객체 </h2>

요청 : <%= pageContext.getRequest()%><p>

세션 : <%= pageContext.getSession()%><p>

예외 : <%= pageContext.getException()%><p>


======================================================================
exception  내장 객체 

exeption 내부 객체는 프로그래머가 JSP페이지에서 발생한 예외를 처리하는 

페이지를 지정한 경우 에러 페이지에 전달되는 예외 객체이다 

----------------------------------------------------------------------

String getMessage()         발생된 예외 메시지를 리턴한다

String toString()           발생된 예외 클래스명과 메세지 리턴

String printStackTrace()    발생된 예외를 역추척하기 위해 표준 예외 스트림을 출력한다
728x90
내장 객체 -  JSP 컨테이너 가 자동으로 생성해주는 객체

 JSP 페이지에 관련된 내장 객체 : page, config

 페이지 입출력에 관련된 내장 객체 : request, response, out

 context에 관련된 내장 객체 : session, application, pageContext

 Error에 관련된 내장 객체 : exception

 - request (javax.servlet.http.HttpServletRequest ) : 웹브라우저 요청 정보
 - response (javax.servlet.http.HttpServletResponse ) : 웹 서버 응답 정보
 - out (javax.servlet.jsp.JspWriter ) : 페이지 내용 출력 스트림
 - session (javax.servlet.http.HttpSession ) : 세션 정보를 가지고 있는 객체
 - application (javax.servlet.ServletContext ) : 어플리케이션 공유 정보를 가지고 있는 객체

 - page ( javax.servlet.jsp.HttpJspPage ) : JSP 서블릿에 대한 인스턴스
 - config( javax.servlet.ServiceConfig ) : JSP 서블릿 configration data
 - pageContext ( javax.servlet.jsp.PageContext ) : JSP 컨텍스트 정보
 - exception ( javax.lang.Throwable ) : 예외 상황에 대한 정보를 담고 있는 객체

request, session, application, page 내부 객체는 임의 속성값(attribute)를 저장하고, 읽을 수 있는 메서드를  제공한다.
속성을 저장하고 읽을 수 있는 기능은 JSP페이지 등 또는 서블릿간의 정보를 주고 받을 수 있도록 해줍니다.

내부 객체의 속성을 저장하고 읽어내는 공통 메서드
 1. setAttribute(String key, Object value ) : 주어진 key(이름)에 속성값을 연결한다.
 2. getAttributeNames() : 모든 속성의 이름을 얻어온다.
 3. getAttribute(key) : 주어진 key에 연결된 속성값을 얻어온다.
 4. removeAttribute(key) : 주어진 key에 연결된 속성값을 제거한다.

out 객체 : 페이지 내용을 담고 있는 출력 스트림 객체

  메서드( JspWriter)
    1. isAutoFlush() : 출력 버퍼가 가득찼을 때 자동으로 밀어닐 것인지 여부를 지정(false/true)
    2. getBufferSize() : 출력 버퍼가 전체 size를 구함.
    3. getRemaining() : 출력 버퍼의 남아있는 size
    4. clearBuffer() : 출력 버퍼를 비운다.
    5. println() : String을 출력한다.
    6. flush() : 출력 버퍼 내용을 밀어낸다.
    7. close() : 출력 버퍼 내용을 밀어내고 출력 버퍼를 닫는다.

예제> OutTest.jsp
<%-- OutTest.jsp --%>
<%@ page contentType="text/html;charset=euc-kr" %>
<html>
 <body>
  <%
  int total=out.getBufferSize();
  int rate=out.getRemaining();
  
  out.println(" total Buffer : "+(total/1024)+"kb"+"<br>");
  out.println(" remain Buffer :"+rate+"byte"+"<br>");
  out.println(" 사용중인 버퍼 : "+(total-rate)+"byte"+"<br>");
  %>
  <br>
  
  total Buffer<%= total %><br>
  remain Buffer<%=rate %><br>
  사용중인 버퍼 : <%= (total-rate)%><br>
 </body>
</html>



request 내장 객체 (HttpServletRequest ) : Parameter를 포함한 요청정보를 담고있는 객체

 메서드
   1. getMethod() :요청 방식 알아내기(Get,Post)
   2. getRequestURI() : 요청 파일 경로 알아내기
      getRequestURL() : 요청 파일 경로 알아내기
  
   3. getQueryString() : URI와 함께 전달되는 입력정보 알아내기

   4. getRemoteHost() : 클라이언트 호스트 이름 알아내기
   5. getRemoteAddr() : 클라이언트 주소 알아내기
   6. getRemoteUser() : (기본 인증을 이용할 경우) 이용자 ID 알아내기

   7. getProtocol() : 사용중인 프로토콜 알아내기(HTTP/1.1)
   8. getServerName() : 서버 도메인 이름 알아내기
   9. getServerPort() : 서버 port 알아내기

  10. getHeader(name) : name에 해당하는 요청 헤더 항목 값을 알아내기

  11. getParameter(name) : name에 해당하는 파라미터 값 알아내기
  12. getParameterValues(name) : name에 해당하는 파라미터 값을 모두 알아내기
  13. getParameterNames() : 폼에 있는 모든 파라미터 이름을 모두 알아내기

예제> RequestTest.jsp

<%@ page contentType="text/html;charset=euc-kr" %>
<html>
 <body>
  <h1>request정보 </h1>
  <li>사용 method 방식 : <%= request.getMethod() %>
  <li>요청경로(URL) : <%= request.getRequestURL() %>
  <li>요청경로(URI) : <%= request.getRequestURI() %>
  <br>
  <li> getRemoteHost(사용자 컴퓨터이름) : <%= request.getRemoteHost() %>
  <li> getRemoteAddr(사용자 컴퓨터 주소) : <%= request.getRemoteAddr() %>
  <li> getRemoteUser : <%= request.getRemoteUser() %>
  
  <br>
  
  <li>프로토콜 :<%= request.getProtocol() %>
  <li>서버이름 :<%= request.getServerName() %>
  <li>서버포트 :<%= request.getServerPort() %>
  
  <%-- getHeader(name)--%>
  <li>현재 사용하는 브라우저 정보 : <%= request.getHeader("User-Agent") %>
  <li>브라우저가 지원하는 file의 MIME type 알아보기 : <%= request.getHeader("Accept") %>
  <li>이전 URL 알아보기 : <%= request.getHeader("referer") %>
  <br>
  <a href="RequestTest.jsp">이전 URL알아보기</a>
  <br>
 </body>
</html>

response객체 ( HttpServletResponse) :요청 객체에 대한 응답을 담고 있는 객체

 메서드
   1. setContentType() : 출력하는 문서의 contentType 지정
      예> response.setContentType("text/html");
   2. getCharacterEncoding() : 문자 인코딩 설정 알아보기
   3. setHeader( name, value) : 응답헤더 설정
       예> response.setHeader("Refresh", "3;URL=http://www.youtobe.com");  //3초후에 유튜브로 고고싱~
   4. sendRedirect("url") : 지정 url문서 보여주기  //자주사용함..
                                 "RequestTest.jsp"   "http://www.daum.net"  - 내부 외부 URL 모두 사용가능함.
       참고 - forward 액션 
                  <jsp: forward page="local url"/>
                                "RequestTest.jsp" 가능  "http://www.daum.net" 불가  -   내부 URL만 사용가능.
              - include 지시자 (외부문서 포함)
                   <%@ include file="파일명.확장자" %>
                                 외부 데이터(jsp,txt,html 등을 ) jsp페이지에 포함시키는 것.
              - include 액션 태그(처리결과를 포함)
                    <jsp:include file="파일명.확장자" %>

예제> ResponseTest.jsp
 
- sendRedirect()은 웹브라우저가 다른 페이지로 이동하는데, 이때 다른 페이지로 가기 위해서 웹브라우저는  
   웹 서버에 새로운 Http 요청을 보낸다. 즉 TCP네트워크 연결이 다시 만들어지는 것 입니다. 
- forward 액션테그는 JSP엔진에서 Http요청을 다른 페이지로 보내는 것이다. 즉, Http요청은 처음 만들어진 것 
  하나만 있는 것입니다. 
  이 차이점은 중요한 의미를 갖는다.
  sendRedirect()를 사용하면 웹브라우저에서 처음에 전송된 Http요청과  이 요청에 포함된 데이터들은 새로 이동된
  페이지에서 사용할수 없게 됩다.  반면에 forward 액션을 사용하면 Http요청은 하나만 사용하기 때문에 새로 이동된
  페이지에서도 클라이언트에서 전송한 데이터를 사용할 수 있다.

   forwart 액션 태그
   <jsp:forward page="로컬url"/>

   <jsp:forward page="로컬 url">
   </jsp:forward>
 
   <jsp:forward page="<%= expression %>"/>
 
   <jsp:forward page="로컬URL">
      <jsp:param name="id" value="kim"/>
      <jsp:param name="pwd" value="123"/>
      <jsp:param name="pwd" value="<%= value %>"/>
   </jsp:forward>


include 디렉티브 (지시자)

외부 파일을 포함하는 것  입니다. ( .jsp, .html, .txt)
포함될 파일은 헤더 부분을 쓰지 말아야 합니다.  ( 중복선언 되니까)

형식----------------------------
<%@ include file="파일.확장자" %>

+ Recent posts