Home » JSP -4.내장객체와 액션태그

JSP -4.내장객체와 액션태그

4.1. 내장객체와 영역객체의 속성 및 사용

4.1.1 내장객체와 영역객체

  • 스크립틀릿이나 표현식을 선언하지 않고 사용 가능한 기본 변수,JSP 페이지 내에서 제공하는 레퍼런스 타입의 변수, JSP가 서블릿으로 변환될 때 자동으로 삽입시켜주는 변수이다.
  • 별도의 import 없이 자유롭게 사용 가능하다.
  • 내장 객체는 9가지로 구분 되어 있는데, request, response, session, page, pageContext, out, application, config, exception 이고, 그 중에 request, session, page, application 객체는 영역 객체이다.

4.1.2 Request

메소드 설명
getParameterName() 모든 요청 매개변수의 이름을 리턴
getParameter(name) Name에 해당하는 매개변수의 값을 리턴
getParameterValues(name) Name에 해당하는 매개변수의 모든값을 리턴
getHeaderNames() 요청에 대한 헤더의 이름을 리턴
getHeader(name) Name에 대한 모든 헤더 값을 string형으로 리턴
getHeaders(name) Name에 대한 모든 헤더값을 리턴
getIntHeader(name) Name에 대한 헤더 값을 int형으로 리턴
getDateHeader(name) Name에 대한 헤더의 날짜값을 리턴
getCookies() 요청에 대한 모든 쿠키를 리턴
getMethod() 요청에 대한 Http(get,post)메소드를 리턴
getRequestURL() 요청URL을 리턴
getQueryString() 요청 URL을 리턴
getSession(flag) 들어온 요청의 세션데이터를 리턴
getRequestDispatcher(path) Path에 지정된 로컬URL에 대한 요청 전달자를 리턴
getRemoteHost() 요청을 보낸 호스트의 이름을 리턴
getRemoteAddr() 요청을 보낸 호스트의 IP를 리턴
getRemoteUser() 요청을 보낸 사용자의 이름을 리턴

4.1.3 Response

메소드 설명 비고
sertContentType() 응답되는 컨텐츠의 MIME타입을 설정 컨텐츠 설정에 필요한 메소드
setCharacterEncoding() 응답되는 컨텐츠의 문자 인코딩 스타일을 리턴.
AddCookie(cookie) 쿠키를 추가 응답헤더 세팅을 위한 메소드
AddHeader(name, value) 해당이름의 헤더에 값(String)을 추가
AddIntHeader(name, value) 해당이름의 헤더에 값(int)를 추가.
AddDateHeader(name, value) 해당이름의 헤더에 날짜값을 추가.
ContainHeader(name) 해당이름의 헤더가 포함 되어 있는지 체크.
setHeader(name, value) 해당이름의 헤더에 값(String)을 넣는다
setIntHeader(name, value) 해당이름의 헤더에 값(int)를 넣는다
setDateHeader(name, value) 해당이름의 헤더에 날짜값을 넣는다
setStatus(code) 응답 상태코드를 설정합니다
sendError(status, msg) 응답코드와 에러 메시지를 설정
sendRedirect(url) 다른 URL로 이동
EncodeRedirectURL(url) SendRedirect()메소드에 넣을 url을 인코딩
EncodeURL(name) 링크에 넣을 url을 인코딩

4.1.4 Session

메소드 설 명
getId() session의 ID를 리턴
getCreationTime() session이 생성된 시간을 long형으로 리턴
getLastAccessedTime() session이 마지막으로 액세스된 시간을 리턴
getMaxInactiveInterval() session이 유지되는 최대시간을 초단위로 리턴
getMaxInactiveInterval(time) session이 유지되는 최대시간을 초단위로 설정
isNew() session 값이 없으면 true를 리턴
invalidate() session 객체를 소멸한다
session에 저장되어 있던 정보는 모두 삭제된다
getAttribute(name) 세션변수(name)에 설정된 값을 리턴
setAttribute(name,value) 세션변수(name)에 값(value)을 설정

4.1.5 Page

  • 페이지 내부 객체는 JSP 페이지 그 자체를 나타내는 객체로서 JSP 페이지 내에서 page객체는 this 키워드로 자기 자신을 참조할 수 있다.
  • 그러나 웹 컨테이너는 자바만을 스크립트 언어로 지원하기 때문에 page 객체는 현재 거의 사용되지는 않는다.

pageContext

메소드 설명 비고
getException() exception 객체를 리턴 객체 내부 속성을알 수 있는 메소드
getOut() out 내부객체를 리턴
getSession() session 내부객체를 리턴
getServletConfig() config 내부객체를 리턴
getPage() application 객체를 리턴
getRequest() page 내부객체를 리턴
getResponse() request 내부객체를 리턴
Forward(path) reponse 내부객체를 리턴 요청 전달 메소드
Include(path) 다른 path에 해당하는 URL로 전달
setAttribute(key, value, scope) 다른 path의 페이지를 현제 페이지에 포함 scope속성을 제어 할 수 있는 메소드
setAttributeNamesInScope(scope) Scope의 시간동안 key의 값(value)를 저장
getAttributeNamesInScope(scope) 특정 scope의 모든 속성을 리턴
getAttribute(key, scope) Key에 대한 scope를 리턴
removeAttribute(key, scope) Key에 대한 scope를 제거
findAttribute(name) Name에 지정된 속성의 scope를 찾는다
getAttributeScope(name) Name에 해당하는 scope를 리턴.

4.1.6 Out

메소드 설명
Print() 내용이 줄바꿈 없이 이어서 출력
Println() 내용이 줄단위로 출력
getBufferSize() 출력버퍼의 크기를 Byte로 리턴
getRemaining() 출력버퍼의 빈부분 크기를 Byte로 리턴
clearBuffer() 출력버퍼를 비운다
Clear() 출력버퍼를 비운다(만약 전에 flush되어 있으면 에러가 발생)
Flush() 출력버퍼를 flush 시킨다.
Close() 출력스트림을 닫는다

4.1.7 Application

메소드 설명 비고
getServerInfo() 컨테이너의 이름과 버전을 리턴 컨테이너 버전을 알 수 있는 메소드
getMajorVersion() 컨테이너의 주버전을 리턴
getMinorVersion() 컨테이너의 부버전을 리턴
getContext(path) Path에 대한 외부환경 정보를 리턴 서버측의 경로를 알 수 있는 메소드
getRealPath(path) Path에 대한 절대경로를 리턴.
getResource(path) Path에 지정된 URL을 액세스 객체로 바꾸어 준다
getResourceAsStream(path) Path에 URL을 읽을 수 있는 입력 스트림으로 바꾸어 준다
getMimeType(filename) Filename에 해당하는 파일의 MIME타입을 리턴
Log(msg) Msg를 로그파일에 기록 로그파일 관련 메소드
Log(msg, exception) Msg와 exception을 로그파일에 기록

4.1.8 Config

메소드 설명
getInitParameterNames() 변수의 이름을 리턴
getInitParameter(name) 변수의 이름을 넣을 경우에는 값을 리턴

4.1.9 Exception

메소드 설명
getMessage() 에러 메시지를 리턴
toString() 에러메시지를 String형으로 리턴
printStackTrace(out) 에러발생시 출력스트림을 통하여 출력

4.1.10 예제

1)내장객체 사용

그림 32. 내장 객체 출력

2) pageContext로 페이지 포함

  • obj.jsp에서 페이지 포함하는 예제. 여기서는 sub.jsp을 생성하여 obj.jsp에 포함..

[Sub.jsp]

[obj.jsp]

그림 33. pageContext 내장 객체

3) 요청 객체로 파라미터 받기

  • 파라미터를 입력 받을 JSP 페이지 작성

[requestInput.jsp]

  • 받은 파라미터를 request.getParameter로 출력.

[requestOutput.jsp]

그림 34. Request 내장 객체 예제 1
그림 35. Request 내장 객체 예제 2

4) response객체의 redirect 사용

http://localhost:8080/Chapter1_ObjAndTag/internal_Obj/responseRedirect.jsp 페이지 호출 시에

http://localhost:8080/Chapter1_ObjAndTag/internal_Obj/responseRedirectTest.jsp 가 호출되는 페이지 작성.

[responseRedirect.jsp]

[responseRedirectTest.jsp]

그림 36. Response 내장 객체 예제

4.2. 액션태그

4.2.1 액션 태그

  • JSP를 이루고 있는 요소 중 하나이며, 페이지와 페이지 사이에 이동을 시킬 수도 있고, 다른 페이지에 실행 결과를 현재의 페이지에 포함 시킬 수도 있는 역할을 해주는 태그이다.


액션 태그명, 액션 태그, 설명
Include, , 다른 페이지의 실행 결과를 현재의 페이지에 포함시킬 때 사용
forward, , 페이지 사이의 제어를 이동시킬 때 사용
Plug-in, , 웹 브라우저에서 자바 애플릿을 실행시킬 때 사용
useBean, , 자바빈을 JSP 페이지에서 사용할 때 사용
setProperty, , 프로퍼티의 값을 세팅할 때 사용
getProperty, , 프로퍼티의 값을 얻어낼 때 사용

4.2.2 예제

  1. forward 태그를 이용한 페이지
  • forwardAction.jsp 페이지를 호출하면 그안에 있던 태그가 Forward.jsp 페이지를 호출하는 페이지 작성.

[forwardAction.jsp]

[forward.jsp]


그림 37. Forward 액션 태그 출력

  1. include 태그를 이용한 페이지 포함
  • 태그를 사용하여 includeAction.jsp 페이지를 호출하였을 때, Include.jsp 페이지를 포함하여 두 개의 페이지가 함께 나오도록 하는 페이지 작성.

[includeAction.jsp]

[include.jsp]


그림 38. Include 액션 태그 출력