백엔드/웹개발
[웹개발] 서블릿 포워드
김곰댕
2022. 2. 23. 14:00
728x90
포워드?
쇼핑몰의 경우 상품 관리 서블릿과 조회된 상품을 화면에 표시하는 JSP는 각각 따로 존재한다. 따라서 사용자가 상품 조회를 요청하면 상품 관리 서블릿은 데이터베이스에서 상품정보를 조회한 후 다시 JSP에게 전달하여 상품 정보를 표시한다. 이처럼 하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법을 포워드(forwoar)라고 한다.
포워드 기능의 용도 ?
- 요청에 대한 추가 작업을 다른 서블릿에게 수행하게 한다.
- 요청(request)에 포함된 정보를 다른 서블릿이나 JSP와 공유할 수 있다.
- 요청(request)에 정보를 포함시켜 다른 서블릿에게 전달할 수 있다.
- 모델2 개발 시 서블릿에서 JSP로 데이터를 전달하는데 사용된다.
서블릿의 여러가지 포워드 방법
1. redirect 방법
- HttpServletResponse 객체의 sendRedirect() 메서드를 이용
- 웹 브라우저에 재요청하는 방식
- 형식 : sendRedirect("포워드할 서블릿 또는 JSP");
2. Refresh 방법
- HttpServletResponse 객체의 addHeader() 메서드를 이용
- 웹 브라우저에 재요청하는 방식
- 형식 : response.addHeader("Refresh", 경과시간(초);url=요청할 서블릿 또는 JSP");
3. location 방법
- 자바스크립트 location 객체의 href 속성을 이용
- 자바스크립트에서 재요청하는 방식
- 형식 : location.href='요청할 서블릿 또는 JSP';
4. dispatch 방법
- 일반적으로 포워딩 기능을 지칭
- 서블릿이 직접 요청하는 방법
- RequestDispatcher 클래스의 forward() 메서드를 이용
- 형식 : RequestDispatcher dis = request.getRequestDispatcher("포워드할 서블릿 또는 JSP"); / dis.forward(request,response);
redirect, refresh, location 방법은 서블릿이 웹 브라우저를 거쳐 다른 서블릿이나 JSP에게 요청하는 방법이지만 dispatch 방법은 서블릿에서 클라이언트를 거치지 않고 바로 다른 서블릿에게 요청하는 방법이다.
728x90