import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ...
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ...
}
}
@WebServlet 어노테이션
현재 클래스가 서블릿 클래스라는 것을 컨테이너에 알리고 URL Mapping을 진행한다.
doGet()
GET 요청을 처리하는 메서드
doPost()
POST 요청을 처리하는 메서드
GET 요청을 처리하는 메서드로 request, response를 parameter로 한다.
ServletException과 IOException을 throws로 하기 있기 때문에 호출하는 쪽에서 예외처리를 해줘야 한다.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().append("served at: ").append(request.getContextPath());
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
out.append("<!DOCTYPE html>").append("<html>").append("<head>")...
}
POST 요청을 처리하는 메서드로 단순히 doGet()을 호출하도록 되어있다. REST API 구현이 아닌 일반 서블릿 구현이라면 GET, POST를 내부적으로 동일하게 처리한다. 물론 GET, POST를 구분해 처리해야하는 경우라면 당연히 별도의 코드로 구성할 수 있다.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}