JSP 내장 객체 JSP에서 기본으로 사용할 수 있는 내장 객체 종류를 알아본다. 내장 객체별 주요 기능과 메서드를 이해한다. 한빛미디어(주)
개요 Section 01 JSP내장 객체란? 주요 활용 JSP에서 선언하지 않고 사용할 수 있는 객체 컨테이너에 의해 미리 선언된 자바클래스의 참조 변수 스크립트릿이나 표현식에서 사용할 수 있음 주요 활용 HTML폼에서 입력한 값을 가지고 올 때. 세션 관련 작업을 처리할 때. 스크립트릿에서 브라우저 출력이 필요할 때. 사용자 요청을 다른페이지로 전달할 때. 현재 JSP에 대한 각종 정보를 알고자 할 때.
개요 Section 01 내장 객체 목록 참조 변수명(내장 객체) 자바 클래스와 주요 역할 request response 예외 처리를 위해 사용 ava.lang.Throwable exception 현재 JSP 페이지에 대한 클래스 정보 java.lang.Object type Page 현재 JSP에 대한 초기화 환경을 처리하기 위해 사용 javax.servlet.ServletConfig config 사용자에게 전달하기 위한 output 스트림 처리하기 위해 사용 javax.servlet.jsp.JspWriter out 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하기 위해 사용 javax.servlet.ServletContext application 클라이언트 세션 정보를 처리하기 위해 사용 javax.servlet.http.HttpSession session 현재 JSP 실행에 대한 context 정보를 참조하기 위해 사용 javax.servlet.jsp.PageContext pageContext 사용자 요청에 대한 응답을 처리할 때 사용 javax.servlet.http.HttpServletResponse response HTML Form 요소 선택 값과 같은 사용자 입력 정보를 읽어올 때 사용 javax.servlet.http.HttpServletRequest request 자바 클래스와 주요 역할 참조 변수명(내장 객체)
request Section 02 클래스 주요 기능 javax.servlet.http.HttpServlet 주로 HTML 폼을 통해 전달된 값을 가져올 때 사용함. 메서드 설 명 getParameterNames() 현재 요청에 포함된 파라미터의 이름을 Enumeration 형태로 넘겨준다. getParameter(name) 문자열name과 같은 이름을 가진 파라미터의 값을 가지고 온다. getParameterValues(name) 문자열 name과 같은 이름을 가진 파라미터의 값을 배열 형태로 가지고 온다. checkbox, multiple list 등에 주로 사용한다. getCookies() 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 가지고 온다. getMethod() 현재 요청이 GET, POST인지 가지고 온다. getSession() 현재 세션 객체를 가지고 온다. getRemoteAddr() 클라이언트의 IP 주소를 알려준다. getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려준다. setCharacterEncoding() 현재 JSP로 전달되는 내용을 지정한 캐릭터셋으로 변환해준다. HTML 폼에서 한글 입력 시 정상적으로 처리해주려면 반드시 필요하다.
request 실습 교재 : 182 ~ 187 페이지 실습과제 개요 [예제 6-1]~[예제 6-2]
response Section 03 클래스 주요 기능 주요 메서드 javax.servlet.http.HttpServletResponse request_result.jsp 주요 기능 사용자 요청에 대한 응답 처리, 페이지 전환 주요 메서드 클라이언트 요청을 다른 페이지 보냄 sendRedirect(url) 에러 코드를 세팅하고 메시지 보냄 sendError(status,msg) 문자열 name 이름으로 date 에 설정된 밀리세컨드 시간값을 헤더에 설정 setDateHeader(name, date) 문자열name 이름으로 문자열 value 값을 헤더로 세팅 setHeader(name,value) 문자열 형태의 MIME Type 으로 ContentType 설정 setContentType(type) 설 명 메서드
response 실습 교재 : 189 ~ 192 페이지 실습과제 개요 [예제 6-3]~[예제 6-6]
out Section 04 클래스 주요 기능 주요 메서드 javax.servlet.jsp.JspWriter 스크립트릿에서 브라우저 출력, 버퍼 컨트롤 주요 메서드 content에 내용을 출력 print(content) content에 내용을 newline과 함께 출력 println(content) output stream을 닫고 버퍼를 비운다. close( ) 버퍼를 비우고 output stream도 비운다. flush( ) 버퍼에 있는 컨텐츠를 모두 지운다. clearBuffer( ) 남아있는 버퍼 크기 중 사용 가능한 비율을 알려준다. getRemaining( ) output buffer 크기를 바이트로 알려준다. getBufferSize( ) 설 명 메서드
session Section 05 클래스 주요 기능 javax.servlet.http.HttpSession 클라이언트와의 지속적인 연결 유지를 위한 세션 처리 세션은 하나의 애플리케이션 내에서만 유효함. 두 개의 서로 다른 애플리케이션에서는 쿠키를 사용해야 함. 세션은 단순한 쿠키 대용이 아님.
session Section 05 주요 메서드 문자열 name으로 java.lang.Object attr을 설정 setAttribute(name,attr) 문자열 attr로 설정된 세션 값을 java.lang.Object 형태로 반환 getAttribute(attr) 현재 세션을 종료. 세션과 관련한 값을 모두 지운다. invalidate( ) 세션 유효 시간을 t에 설정된 초 값으로 설정 setMaxInactiveInterval(t) 세션 유지 시간을 초로 반환 세션 유효 시간을 알수 있다. getMaxInactiveInterval( ) 현재 세션으로 마지막 작업한 시간을 long형 밀리세컨드 값으로 반환 getLastAccessedTime( ) 세션이 생성된 시간을 January 1, 1970 GMT.부터 long형 밀리세컨트 값으로 반환 getCreatingTime( ) 각 접속에 대한 세션 고유의 ID를 문자열 형태로 반환 getID( ) 설 명 메서드
config Section 06 클래스 주요 기능 javax.servlet.http.ServletConfig 애플리케이션에서 공유할수 있는 초기화 변수 접근 web.xml 에 초기화 패러미터가 설정되어야 함. 애플리케이션의 ServetContext객체를 가져옴.
config Section 06 주요 메서드 현재 애플리케이션의 ServetContext 객체를 반환 내장 객체인 application과 동일한 객체 참조 getServletContext( ) 문자열 name에 해당하는 초기화 파라미터 값을 리턴 getInitParameter(name) 초기 파라미터 값의 설정 이름을 Enumeration 객체로 리턴 getInitParameterNames( ) 설 명 메서드
application Section 07 클래스 주요 기능 javax.servlet.http.ServletContext 웹 애플리케이션(컨텍스트) 에 관련된 정보를 제공 개발자를 위한 서버 정보 서버의 각종 자원 정보 로그 관련 정보 application scope의 속성 관련 정보
application Section 07 개발자를 위한 서버 관련 정보 메서드 컨테이너가 지원하는 서블릿 API의 Minor 버전 정보 반환 getMinorVersion( ) 컨테이너가 지원하는 서블릿 API의 Major 버전 정보 반환 getMajorVersion( ) JSP/서블릿 컨테이너 이름과 버전 반환 getServerInfo( ) 설 명 메서드
application Section 07 서버 자원 정보 메서드 문자열 path에 지정된 자원을 위한 request dispatcher를 생성 getResourceDispatcher(path) 문자열 path에 지정된 자원의 컨텍스트 정보를 반환 getContext(path) 문자열 path에 지정된 자원을 파일 시스템의 실제 경로로 반환 getRealPath(path) 문자열 path에 지정된 자원을 InputStream 객체로 반환 getResourceAsStream(path) 문자열 path에 지정된 자원을 URL 객체로 반환 getResource(path) 문자열 filename에 지정된 파일에 대한 MIME type을 반환 getMimeType(filename) 설 명 메서드
application Section 07 로그 관련 메서드 예외 상황과 관련한 정보를 포함하여 로그 파일에 기록 log(message,exception) 문자열 message 내용을 로그 파일에 기록 로그 파일 위치는 컨테이너에 따라 다름 log(message) 설 명 메서드
application Section 07 속성 관련 메서드 문자열 name에 해당하는 속성을 삭제 removeAttribute(String name) 문자열 name 이름으로 Object 형 데이터를 저장 Object 형이므로 자바 클래스 형태로도 저장 가능 setAttribyte (String name, Object value) 현재 application 객체에 저장된 속성 이름을 Enumeration 형태로 가져옴. getAttributeNames( ) 문자열 name에 해당하는 속성값이 있다면 Object 형태로 가져옴. 반환 값에 대한 적절한 형 변환이 필요 getAttribute(String name) 설 명 메서드
application 실습 교재 : 202 ~ 205 페이지 실습과제 개요 [예제 6-9]~[예제 6-10]
page Section 08 클래스 주요 기능 javax.servlet.jsp.PageContext <%@page language=java...%>인 경우 크게 의미는 없음.
pageContext Section 09 클래스 주요 기능 javax.servlet.jsp.PageContext include, forward 액션의 실제구현에 응용됨. 내장객체에 대한 프로그램적인 접근방법 제공 <%@page language=java...%>인 경우 크게 의미는 없음. <jsp:forward page=”HelloWorld.jsp” /> <% out.flush(); pageContext.include(“HelloWorld.jsp”); %>
exception Section 10 클래스 주요 기능 속성 관련 메서드 java.lang.Throwable page 지시어에 isErrorPage=“true” 로 지정된 에러 페이지에서 사용 현재 호출된 에러 정보 제공. 속성 관련 메서드 예외 클래스 이름과 함께 에러 메시지를 반환한다. toString( ) 표준 출력 스트림으로 스택 추적 정보를 출력한다. printStackTrace( ) 문자열로 된 에러 메시지를 반환한다. getMessage( ) 설 명 메서드