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와 공유할 수 있다.
- 요청에 정보를 포함시켜 다른 서블릿에 전달할 수 있다.
서블릿의 여러가지 포워드 방법
- redirect 방법
- HttpServletResponse 객체의 sendRedirect() 메서드를 이용한다.
- 웹 브라우저에 재요청하는 방식이다.
- Refresh 방법
- HttpServletResponse 객체의 addHeader() 메서드를 이용한다.
- 웹 브라우저에 재요청하는 방식이다.
- location 방법
- 자바스크립트 location 객체의 href 속성을 이용한다.
- 자바스크립트에서 재요청하는 방식이다.
- dispatch 방법
- 일반적으로 포워딩 기능을 지칭한다.
- 서블릿이 직접 요청하는 방법이다.
- RequestDispatcher 클래스의 forward() 메서드를 이용한다.
서블릿에서 다른 서블릿 또는 JSP로 대량의 데이터를 공유하거나 전달하고 싶을 때는 바인딩(binding) 기능을 사용한다.
바인딩은 웹 프로그램 실행 시 데이터를 서블릿 관련 객체에 저장하는 방법으로, 주로 HttpServletRequest, HttpSession, ServletContext 객체에서 사용되며 저장된 데이터는 프로그램 실행 시 서블릿이나 JSP에서 공유하여 사용한다.
setAttribute(String name, Object obj) -> 데이터를 각 객체에 바인딩한다.
getAttribute(String name) -> 각 객체에 바인딩된 데이터를 name으로 가져온다.
removeAttribute(String name) -> 각 객체에 바인딩된 데이터를 name으로 제거한다.