[JSP] redirect & forward

yenn·2021년 1월 27일
0

JSP

목록 보기
4/8
post-thumbnail

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를 작성하면 훨씬 편리하게 출력을 처리함 ⭐

profile
Junior BackendEngineer 😎

0개의 댓글