하나의 서블릿에서 다른 서블릿, JSP와 연동하는 방법
HttpServletResponse
객체의 sendRedirect()
메소드 사용HttpServletResponse
객체의 addHeader()
메소드 사용RequestDispatcher
클래스의 forward()
메소드 사용dispatcher
방법을 제외한 방법은 서블릿이 브라우저를 거치는 방법이고 dispatcher
방법은 서블릿이 직접 서블릿에게 요청한다.
다른 서블릿, JSP로 대량의 데이터를 공유, 전달할 때 사용하는 기능
=> 포워딩 시 GET 방식으로 데이터를 전달할 수 있지만 대량의 데이터를 전달할 때 GET 방식으로 전달하는 것에는 한계가 있음
HttpServletRequest
의 setAttribute
getAttribute
사용해 바인딩하고 바인딩된 자원을 읽음
redirect, refresh, location.href 방식은 웹 브라우저를 거쳐서 다른 페이지로 요청하는 것이기 때문에 데이터가 보존되지 않는다.
따라서 데이터 바인딩을 해야할 떄는 dispatch 방식을 사용해야한다.
톰캣 컨테이너 실행 시 웹 애플리케이션마다 하나의 ServletContext 객체를 생성되고 종료 시 소멸된다.
javax.servlet.ServletContext
ServletContext
객체에 접근 후 setAttribute
getAttribute
메소드를 통해 바인딩하면 다른 클래스에서 ServletContext
에 접근 시 바인딩된 데이터에 접근이 가능하다.
모든 페이지에서 공통으로 사용하는 부분에 web.xml과 사용해서 공통적으로 화면에 보이게할 수 있다.
서블릿 확장 API로 GenericServlet
클래스가 구현
각 서블릿에 대해서 ServletConfig 객체가 생성되며
ServletContext
객체를 얻는 기능