GET 방식
:
- 조회처리에 많이 쓰임
- URL 뒤의 '?'와 쿼리 스트링으로 구성되어 있음
- 사용자가 손쉽게 사용할 수 있는 링크를 제공할 수 있음
단,
- 브라우저에 따라 길이의 제한
- URL 뒤의 쿼리스트링으로 모든 정보가 전달되는 단점
- 쿼리스트링 길이에 대한 제한(일반적으로 2kb 혹은 브라우저마다 차이가 있음)
package org.zerock.w1.calc;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "inputController", urlPatterns = "/calc/input")
public class InputController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("InputController...doGet...");
RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/calc/input.jsp");
dispatcher.forward(req,resp);
}
}
POST 방식
:
- 등록/수정/삭제와 같은 처리에 많이 쓰임
- URL 전달후 HTTP(Body)로 쿼리 스트링
- 단순 조회가 아니라 원하는 작업을 처리할 수 있게 됨
단,
- GET 방식에 비해서 많은 양의 데이터를 전송함
- 주소창만으로는 테스트가 어려움
package org.zerock.w1.calc;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "calcController", urlPatterns = "/calc/makeResult")
public class CalcController extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String num1 = req.getParameter("num1");
String num2 = req.getParameter("num2");
System.out.printf("num1: %s",num1);
System.out.printf("num1: %s",num2);
}
}
반복되어 결과를 보여줄수 있기 때문에 HttpServletResponse 의 sendRedirect() 메소드를 이용한다.