JSP와 비슷한 점이 있지만, JSP는 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 Java 코드 안에 HTML을 포함하고 있다는 차이점
HTML을 사용하여 요청에 응답Java Thread를 이용하여 동작MVC 패턴에서 Controller로 사용HTML 변경 시 Servlet을 재컴파일해야 하는 단점톰캣과 같은 JSP/Servlet 컨테이너에서만 실행 가능하며, 컨테이너 독립적으로 실행doGet() 또는 doPost()를 호출request 정보 안에 있는 HttpServletRequest와 서버에서 전송할 response에 관련된 정보와 기능을 가진 HttpServletResponse를 건네줌HttpServletRequest 인스턴스에 저장된 정보를 가지고 처리HttpServletResponse 인스턴스를 사용하여 브라우저에 결과를 반환URL은 다음과 같은 구조를 가짐http://서버명/어플리케이션명/URL 패턴@WebServlet 어노테이션을 사용| GET | POST | |
|---|---|---|
| 특징 | 전송되는 데이터가 URL뒤에 QueryString으로 전달. 입력 값이 적은 경우나 데이터가 노출이 되도 문제가 없을 경우 사용 | URL과 별도로 전송. HTTP Header 뒤 body에 입력 스트림 데이터로 전달 |
| 장점 | 간단한 데이터를 빠르게 전송. form tag뿐만 아니라 직접 URL에 입력하여 전송 가능 | 데이터의 제한이 없음 최소한의 보안 유지 효과를 볼 수 있음 |
| 단점 | 데이터 양에 제한이 있음 (location bar(URL + parameters)를 통해 전송할 수 있는 데이터의 사이즈는 2kb(2048byte)로 제한 | 전송 패킷을 body에 데이터를 구성해야 하므로 전달 데이터의 양이 같을 경우 GET방식보다 느림 |