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)
서블릿의 페이지 이동
Forward
- 동일 서버 내부에서 이동하는 가장 기본적인 메소드
- 동일한 서버 내에서 이동하기에 최초의 request 객체가 그대로 유지되어 전달(forward)됨.
- 즉, 웹 컨테이너가 내부에서 서블릿 간의 request 객체를 옮기는 것이기에 브라우저 상의 URL변화는 없음
- forward() 메소드가 호출되면 RequestDispatcher 객체가 request와 response 객체를 전달하는데, 이때 request의 setAttribute()메소드를 통해 데이터를 저장하여 forward된 servlet에 데이터를 전달할 수 있다.
- 웹 브라우저 -> Servlet1 -> (setAttribute(a)) -> Servlet2 -> (getAttribute(a)) -> 웹 브라우저
Redirect
- forawrd()가 동일 서버 내부의 서블릿 간 페이지 이동이라면, sendRedirect()는 타 서버까지 자유로ㅠㅂ게 이동할 수 있는 방법.
- sendRedirect()가 호출되면 웹 컨테이너는 이동하고자 하는 새로운 URL을 브라우저의 클라이언트에게 전달하여 새로운 request를 생성.
- 결국 총 2번의 request와 response가 일어나는 것.
- 웹 브라우저 -> Servelt 1 -> 웹 브라우저 -> Servlet 2
- 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 |