IT

서블릿(Servlet) - forward, 바인딩

yeosang0508 2024. 8. 15. 23:20

서블릿에서 응답을 처리하는 방법

  • doGet()이나 doPost() 메서드 안에서 처리
  • javax.servlet.http.HttpServletResponse 객체 이용
  • setContentType()을 이용하여 클라이언트에게 전송할 데이터 종류(MIME-TYPE)를 지정
  • 클라이언트와 서블릿의 통신은 자바 I/O의 스트림을 이용

서블릿의 응답 처리는 doGet()이나 doPost() 메서드의 두 번째 매개변수인 HttpServletResponse 객체를 이용하여 처리한다.
웹 브라우저와 서블릿의 응답 과정은 자바 I/O의 기능인 스트림을 이용하여 이루어진다.

I/O는 입력(Input)/출력(Output)로, 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 프로그램, 운영 혹은 장치

 


 

서블릿 포워드(forward)

하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법을 포워드라고 한다.

  • 요청에 대한 추가 작업을 다른 서블릿에게 수행하게 한다.
  • 요청에 포함된 정보를 다른 서블릿이나 JSP와 공유할 수 있다.
  • 요청에 정보를 포함시켜 다른 서블릿에 전달할 수 있다.

서블릿의 여러가지 포워드 방법

  1. redirect 방법
  • HttpServletResponse 객체의 sendRedirect() 메서드를 이용한다.
  • 웹 브라우저에 재요청하는 방식이다.
  1. Refresh 방법
  • HttpServletResponse 객체의 addHeader() 메서드를 이용한다.
  • 웹 브라우저에 재요청하는 방식이다.
  1. location 방법
  • 자바스크립트 location 객체의 href 속성을 이용한다.
  • 자바스크립트에서 재요청하는 방식이다.
  1. dispatch 방법
  • 일반적으로 포워딩 기능을 지칭한다.
  • 서블릿이 직접 요청하는 방법이다.
  • RequestDispatcher 클래스의 forward() 메서드를 이용한다.

 

서블릿에서 다른 서블릿 또는 JSP로 대량의 데이터를 공유하거나 전달하고 싶을 때는 바인딩(binding) 기능을 사용한다.

바인딩은 웹 프로그램 실행 시 데이터를 서블릿 관련 객체에 저장하는 방법으로, 주로 HttpServletRequest, HttpSession, ServletContext 객체에서 사용되며 저장된 데이터는 프로그램 실행 시 서블릿이나 JSP에서 공유하여 사용한다.

setAttribute(String name, Object obj) -> 데이터를 각 객체에 바인딩한다.
getAttribute(String name) -> 각 객체에 바인딩된 데이터를 name으로 가져온다.
removeAttribute(String name) -> 각 객체에 바인딩된 데이터를 name으로 제거한다.