백엔드/웹개발
[이클립스/웹개발] redirect를 이용한 포워딩
김곰댕
2022. 2. 23. 14:19
728x90
1. redirect를 이용한 포워딩

- 클라이언트의 웹 브라우저에서 첫 번째 서블릿에 요청
- 첫 번째 서블릿은 sendRedirect() 메서드를 이용해 두 번째 서블릿을 웹 브라우저를 통해 요청
- 웹 브라우저는 sendRedirect() 메서드가 지정한 두 번째 서블릿을 다시 요청
2. redirect를 이용한 포워딩 실습
1. 프로젝트 생성

2. 서블릿을 사용하기 위해 Build Path -> Configure Build Path...

3. Java Build Path -> Libraries -> Classpath -> Add External JARs... -> servlet-api.jar 선택 후 확인 -> Apply and Close

4. 아래 사진에서 보이는 경로에 ojdbc.jar와 tomcat-jdbc.jar 추가

5. FirstServlet라는 이름의 서블릿 클래스와 SecondServlet이라는 이름의 서블릿 클래스를 생성한 후 아래와 같은 내용을 입력
redirect 기능을 구현한 서블릿
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
@WebServlet("/first")
public class FirstServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ServletException, IOException {
response.setContentType("test/htm;charset=utf-8");
PrintWriter out = response.getWriter();
response.sendRedirect("second");
}
}
첫 번째 서블릿에서 요청을 받아 실행한느 두 번째 서블릿
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
@WebServlet("/second")
public class SecondServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("sendRedirect를 이용한 redirect 실습입니다.");
out.println("</body></html>");
}
}
6. 서버에 pro8(프로젝트)를 추가한 후 FInish 한다. 그 뒤 서버를 구동

7. 홈페이지 주소창에 IP주소:포트번호/프로젝트이름/매핑이름 입력 후 엔터
localhost:8090/pro08/first
/first로 요청하면 sendRedirect()를 호출해 웹 브라우저에게 다시 /second를 요청한다. 따라서 아래와 같은 결과가 나오게 된다.

728x90