백엔드/웹개발

[이클립스/웹개발] redirect를 이용한 포워딩

김곰댕 2022. 2. 23. 14:19
728x90

1. redirect를 이용한 포워딩

서블릿의 redirect 방법 수행 과정

  1. 클라이언트의 웹 브라우저에서 첫 번째 서블릿에 요청
  2. 첫 번째 서블릿은 sendRedirect() 메서드를 이용해 두 번째 서블릿을 웹 브라우저를 통해 요청
  3. 웹 브라우저는 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