1. Redirect
서버는 클라이언트로부터 요청을 받은 후, 클라이언트에게 특정 URL로 이동하라고 요청
- http 프로토콜로 정해진 규칙
- 서버에서는 클라이언트에게 응답으로 상태코드를 302와 함께 이동할 URL 정보를 location 헤더에 담아 전송 → 클라이언트는 서버로 부터 받은 상태값이 302이면 location 헤더 값으로 재요청을 보내게 됨 ⇒ 이때 브라우저의 주소창은 전송받은 URL로 바뀜
- 서블릿이나 JSP는 redirect하기 위해서 HttpSevletResponse가 가지고있는
**sendRedirect()**
메소드를 이용
- request, response 객체가 두개, 요청이 두번 들어옴
Redirect를 하는 이유
- 신뢰할 수 있는 HTTP 트랙잭션의 수행
- 지연 최소화
- 네트워크 대역폭 절약
→ 한곳에서 실패할 경우 다른곳을 이용할 수 있도록 신뢰성 개선
→ 클라이언트가 보다 가까운 리소스에 접근할 수 있게 되어 응답시간 줄어듦
→ 목적지 서버가 분산되므로 네트워크 혼잡도 감소
2. Foward
클라이언트에서 요청을 보내고 서버에서 URL을 변경하지하고 요청 정보를 전달함
- URL 이 변경되지 않음
- request, response 객체가 한번 생성됨
- servlet1에서 사용한 결과를 sevlet2에서 사용하기 위해서 그 결과를 HttpServletRequest에 저장해야 함
✔ 서블릿은 html 표현이 어렵고, jsp는 프로그램 로직 개발이 어려움
⇒ 서블릿을 이용해서 로직을 짜고 jsp 로 포워드 하여 html 개발 진행
‣ FrontServlet.java
‣ NextServlet.java
3. Servlet & JSP 연동(forward)
- Servlet은 프로그램 로직이 수행되기에 유리 → IDE등에서 지원을 더 잘함
- JSP는 결과를 출력하기에 Servlet보다 유리 → 필요한 html문을 그냥 입력
- 프로그램 로직 수행은 Servlet , 결과 출력은 JSP에서 하는 것이 유리
- Servlet에서 프로그램 로직이 수행되고 그결과를 JSP에게 포워딩하는 방법이 좋음 ⇒ Servlet과 JSP연동
‣ LogictServlet.java
‣ result.jsp
** EL을 사용해서 jsp코드 작성
⭐ EL을 이용해서 JSP를 작성하면 훨씬 편리하게 출력을 처리함 ⭐