처음부터 차근차근

get과 post 나눠서 처리하는 방법과 forward와 redirect의 차이 본문

프로그래밍/JSP

get과 post 나눠서 처리하는 방법과 forward와 redirect의 차이

_soyoung 2022. 1. 5. 12:51
반응형

servlet에서 get과 post 나눠서 처리하는 3가지 방법

  1. service() 함수 오버라이드해서 직접 if else문으로 나눠 처리
  2. service() 함수 오버라이드 안하고 doGet(), doPost() 오버라이드해서 처리
  3. 위에꺼 둘다하기

 

HttpServlet의 service()함수는 기본적으로 get요청이 오면 doGet()함수를, post요청이 오면 doPost()함수를 실행한다.

그래서 doGet(), doPost()가 override되어있지 않으면 오류가 난다.

 

1번

@WebServlet("/hi")
public class TestServlet extends HttpServlet {
  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response) 
          throws ServletException, IOException {
      if(request.getMethod().equals("GET")) {
          // 코드
      }
      else if (request.getMethod().equals("POST")){
          // 코드
      }
  }
}

 

 

2번

@WebServlet("/hi")
public class TestServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// get 요청일 때 코드
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// post 요청일 때 코드
	}
}

 

 

3번

@WebServlet("/hi")
public class TestServlet extends HttpServlet {

	@Override
  	protected void service(HttpServletRequest request, HttpServletResponse response) 
          throws ServletException, IOException {
    		// 코드
       		super.service(req, resp); // doGet()이나 doPost() 호출
  	}
    
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// get 요청일 때 코드
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// post 요청일 때 코드
	}
}

 

 

redirect

response.sendRedirect("test.jsp");

redirect는 현재 작업한 내용과 상관없이 새로운 요청을 할 때 사용하는 것이다.

 

 

 

forward

RequestDispatcher dispatcher = request.getRequestDispatcher("/test.jsp");
dispatcher.forward(request, response);

현재 작업한 내용을 이어갈 수 있도록 request객체와 response객체를 공유하면서 페이지를 이동시킬 때 사용하는 것이다.

 

 

 

 

출처 : https://www.youtube.com/playlist?list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd 변형 및 요약 

반응형

'프로그래밍 > JSP' 카테고리의 다른 글

EL  (0) 2022.01.08
JSP  (0) 2022.01.06
상태유지 방법  (0) 2022.01.02
Servlet Filter  (0) 2022.01.01
servlet 한글 깨짐과 쿼리스트링  (0) 2021.12.31
Comments