Web

Servlet (2)

Servlet(2)

서블릿 API

  • 자바 서블릿을 작성할 수 있도록 제공되는 자바 서블릿 패키지는 javax.servelt 패키지와 javax.servlet.http 패키지로 구성되어 있음

  • 서블릿을 작성하기 위해서는 두 개의 패키지에서 제공해주고 있는 클래스 또는 인터페이스를 이용해야함.

  • HttpServletRequest : HTTP서블릿에서 웹 클라이언트로부터 전달된 요청과 관련된 작업을 할 수 있도록 기능을 제공.

ServletConfig 메소드

  • getinitParameterNames()
  • getInitParameter(String name)

ServletContext 메소드

  • getMimeType(String filename)
  • getResource(String path)
  • getResourceAsStream(String path)
  • getRealPath(String path)
  • getContext(String path)
  • getRequestDispatcher(String path)

서블릿의 페이지 이동

  1. Forward

    • 동일 서버 내부에서 이동하는 가장 기본적인 메소드
    • 동일한 서버 내에서 이동하기에 최초의 request 객체가 그대로 유지되어 전달(forward)됨.
    • 즉, 웹 컨테이너가 내부에서 서블릿 간의 request 객체를 옮기는 것이기에 브라우저 상의 URL변화는 없음
    • forward() 메소드가 호출되면 RequestDispatcher 객체가 request와 response 객체를 전달하는데, 이때 request의 setAttribute()메소드를 통해 데이터를 저장하여 forward된 servlet에 데이터를 전달할 수 있다.
    • 웹 브라우저 -> Servlet1 -> (setAttribute(a)) -> Servlet2 -> (getAttribute(a)) -> 웹 브라우저
  2. Redirect

  • forawrd()가 동일 서버 내부의 서블릿 간 페이지 이동이라면, sendRedirect()는 타 서버까지 자유로ㅠㅂ게 이동할 수 있는 방법.
  • sendRedirect()가 호출되면 웹 컨테이너는 이동하고자 하는 새로운 URL을 브라우저의 클라이언트에게 전달하여 새로운 request를 생성.
  • 결국 총 2번의 request와 response가 일어나는 것.
  • 웹 브라우저 -> Servelt 1 -> 웹 브라우저 -> Servlet 2
  1. include
  • include는 단어 뜻 그대로 현재 페이지에 다른 페이지를 포함하는 것을 의미.
  • 즉 서블릿 간의 이동에서 include 는 include된 서블릿을 먼저 수행하고 돌아와 원래 서블릿의 나머지 부분을 수행.
  • 이 때, include된 서블릿의 response는 본래 서블릿의 최중 response에 포함됨.
  • include의 대상은 서블릿 외에, html이나 JSP 페이지도 모두 가능

'Web' 카테고리의 다른 글

JSP (2) - Directive Tag(지시자 태그)  (0) 2019.09.29
JSP (1)  (0) 2019.09.29
Servlet (4) - Session  (0) 2019.09.28
Servlet (3) - Cookie  (0) 2019.09.28
Servlet (1)  (0) 2019.09.28