Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

기분좋음

JSP 내장 객체 본문

IT 기술노트/Servlet JSP

JSP 내장 객체

기분좋음:) 2023. 2. 10. 13:48
반응형

내장 객체란?

 

JSP가 서블릿으로 만들어 질 때 자동으로 생성되는 객체( jsp에서 별도의 선언 없이 사용가능한 객체)

 

 

 

내장 객체의 분류

분류 내장 객체 형태
입출력 관련 객체 request HttpServletRequest request
response HttpServletResponse response
out JspWriter out
서블릿 관련 객체 page Object page
config ServletConfig config
외부 환경 정보를 제공하는 객체 session HttpSession session
application ServletContext application
pageContext PageContext pageContext
예외 관련 객체 exception 에러페이지로 지정되면 생성

 

 

입출력 관련 객체

 

1. out 내장 객체

 

JSP의 실행결과를 클라이언트의 브라우저로 출력 시 가장 효과적인 객체

 

서블릿에서는 

PrintWriter out = response.getWriter();

이와 같이 객체를 직접 생성해야 했지만 JSP 내장 객체로 제공된다.

 

 

 

 

2. request 내장 객체

-클라이언트와 웹서버 사이의 '요청'과 관련된 정보가 저장되어 관리된다

 

메소드 설명
getContextpath() JSP페이지가 속한 웹 애플리케이션의 컨텍스트 패스를 구한다
getMethod() 요청 방식이 GET방식인지 POST방식인지 알려준다.
getRequestURL() 요청 URL을 구한다
getRequestURI() 요청 URL에서 쿼리 스트링 부분을 제외한 부분을 구한다.
getQueryString() 요청 URL 다음에 오는 쿼리 스트링 부분을 구한다.
getSession(flag) 요청에 관련된 세션 객체를 구한다.
getRequestDispatcher(path) 지정 로컬 URL에 대한 RequestDispatcher 객체를 구한다.
getRemoteHost() 요청한 호스트의 완전한 이름을 구한다.
getRemoteAddr() 요청한 호스트의 네트워크 주소를 구한다.
getRemoteUser() 요청한 사용자의 이름을 구한다.
getSession() 세션 객체를 구한다.
getServerName() 서버의 이름을 구한다.
getProtocol() 사용중인 프로토콜을 구한다.

 

-요청 파라미터 관련 메소드

 

메소드 설명
getParameter(String name) 지정한 이름의 파라미터를 구한다.
getParameterNames() 모든 파라미터의 이름을 구한다.
getParameterValues(String Name) 지정한 이름의 파라미터가 여러 개인 경우 사용하며 지정한 이름을 가진 파라미터의 모든 값을  배열로 구한다.

 

 

 

 

 

3. response 내장 객체

실행 결과를 브라우저로 되돌려 줄 때 사용하는 내장 객체

 

sendRedirect - 웹 서버가 브라우저에게 지정된 페이지로 이동하도록 지시 (가장 많이 사용되는 메소드)

 

 

 

웹사이트에서 페이지를 이동시키는 방법 

 

• 리다이렉트 방식(redirect)

 -response객체의 sendRedircet방식이다

-브라우저의 URL을 변경하여 페이지를 이동하는 방식 / request, response객체가 유지되지 않는다.

 

 

 

• 포워드 방식(forward)

- 서버상으로 페이지가 이동되므로 브라우저에서는 페이지 이동을 알 수없다.

- URL변경이 없고 기존 request, response 객체가 유지된다.

- RequestDispatcher객체를 통해서 호출이 가능하다

 

 

 

다른 페이지에 데이터 전송 하고 싶을 때 >>>>

 

리다이렉트는 쿼리스트링을 이용해야 한다. 

ex) response.sendRedirect("main.jsp?name="+name)

 

포워드는 request객체가 유지되므로 해당 객체에 데이터를 담아서 보낼 수 있다.

ex) request.setAttribute("name", name);

 

 

 

 

내장 객체의 영역

-객체가 얼마 동안 유지되는지 보여주는 영역

영역은 총 4개 page, request, session, application이 있다.

영역  설명
page 하나의 JSP 페이지를 처리할 때 사용되는 영역
request 하나의 요청을 처리할 때 사용되는 영역
session 하나의 브라우저와 관련된 영역
application 하나의 웹 애플리케이션과 관련된 영역

범위 크기

page <  request < session < application

 

 

page 

- 요청을 처리하는JSP페이지 하나당 새로운 page영역을 가지며 pageContext 객체 하나가 생성

(해당 페이지 내에서만 사용 가능하다)

 

request 

- 한번의 클라이언트 요청 

- 클라이언트가 페이지를 요청하면 요청한 페이지와 요청 받은 페이지 사이의 rqeuest 내장 객체에 정보를 저장할 수 있다.

- 브라우저가 응답페이지를 받으면 request 객체는 사라진다.

 

session

- 웹 브라우저를 닫기 전까지 페이지를 이동하더라도 정보를 저장할 수 있는 객체

ex) 주로 사용자 정보를 담아서 사용하는 session 객체는 로그인 인증 처리를 통해 회원 전용 페이지를 사용할 수 있게 해준다.

 

application

- 하나의 웹 애플리케이션에 속한 모든 페이지, 페이지에 대한 요청, 세션 전부 application 영역에 속한다.

 

 

 

 

 

각각의 영역 객체에

  • 정보를 저장하기 위한 메소드  :  setAttribute("속성 이름", 속성 값)
  • 정보를 꺼내오기 위한 메소드  :  getAttrivute("속성 이름")
  • 모든 속성 이름을 가져오기 위한 메소드  : getAttributeNames()
  • 지정된 속성을 삭제하는 메소드 : removeAttribute("속성 이름")

 

반응형