본문 바로가기

JAVA

Servlet 포워드 기능

  • 포워드 기능
    • 하나의 Servlet에서 다른 Servlet이나 jsp와 연동하는 방법을 포워드(forward) 라고 한다.
    • 포워드 사용 용도 요약
      • 요청에 대한 추가 작업을 다른 서블릿에게 수행 전달
      • 요청(request)에 포함된 정보를 다른 Servlet 또는 jsp와 공유 가능
      • 요청(request)에 정보를 포함시켜 다른 Servlet에 전달 가능
      • Model2 방식 개발시 Servlet -> jsp 데이터 전달 사용 가능
  • Servlet 에서 사용되는 포워드(forward) 방법
    • redirect
      • HttpServletResponce 객체의 sendRedirect() 메서드 이용
      • 웹 브라우저에 재요청 하는 방식
      • 사용 방법 -> responce.sendRedirect("test1.jsp");
    • Refresh
      • HttpServletResponce 객체의 addHeader() 메서드 사용
      • 웹 브라우저에 재요청 하는 방식
      • 사용 방법 -> responce.addHeader("Refrest", "경과시간(초); url = test.jsp");
    • dispatch
      • 일반적으로 포워딩 기능을 지칭
      • Servlet이 직접 요청 하는 방법
      • RequestDispatcher 클래스의 forward() 메서드를 이용 한다.
      • 형식 : RequestDispatcher dis = request.getRequestDispatcher("포워드 할 Servlet 또는 jsp"); dis.forward("request, response);
    • redirect, refresh, location -> Servlet이 웹 브라우저를 거쳐 다른 Servlet이나 jsp에게 요청 하는 방식
    • dispatch -> 바로 다른 서블릿에게 다이렉트 요청
  • redirect를 이용한 forward
  •  

response().sendREdirect -> responce 객체 내 sendRedirect 메서드를 사용한다 -> responce.sendRedirect("second") -> SecondServlet.java내 /second value Redirect 요청

  • Redirect를 통한 다른 서블릿에 데이터 전달하기

FristServlet.java 

1. response.sendRedirect("Second?name=lee) 

-> response 객체 내 sendRedirect ()메서드를 사용하여 Second 경로에 name 파라미터를 통해 lee라는 값을 전송한다.

SecondServlet.java

1. String 타입 name 변수를 생성하여 request 객체 내 getParameter() 메서드를 사용하여 name 파라미터를 전달 받음.

2.PrintWriter 클래스를 사용하여 웹 페이지내 html 바인딩 진행 

3. 이름 : name 변수값을 사용하여 출력한다.

  • Servlet을 이용한 dispatch 포워딩 실습

FirstServlet.class

1.RequestDispatcher 클래스 사용 하여 request 객체 내 getDispatcher() 메서드를 사용하여 Second를 호출

2.dispatch.forward()메서드내에 request, response 인자를 전달한다

'JAVA' 카테고리의 다른 글

두개 Servlet 바인딩 예제  (0) 2021.08.04
바인딩  (0) 2021.08.04
Servlet 회원 정보 삭제 로직  (0) 2021.08.01
Servlet 회원정보 Insert 간단 예제  (0) 2021.07.31
DataSource를 이용한 데이터베이스 연동  (0) 2021.07.30