WEB
Servlet 구조 분석(3) - HttpServlet
긍.응.성
2020. 4. 18. 16:24
반응형
Servlet 구조 분석(2) - GenericServlet에 이어 Servlet의 구현체이며 HTTP protocol을 지원하는 HttpServlet에 대해 분석해보았습니다.
5. abstract class HttpServlet
GenericSerlvet이 generic 한 protocol을 위한 서블릿 클리스라면 HttpServlet은 HTTP protocol 사용을 위해 만들어진 서블릿 클래스이다.
HttpServlet을 상속한 후 Http Method에 맞추어 doGet()이나 doPost()를 구현하면 쉽게 HTTP 프로토콜에 맞는 서블릿을 사용할 수 있기 때문에, 굳이 Servlet interface의 service service를 구현하여 사용할 필요가 없다 (각 서블릿마다 메서드를 나누고 처리하는 필요하다).
// GET, POST, PUT, DELETE 등과 같은 HTTP 메서드를 지원하는 doGet, doPost 메서드가 존재하며
// 아래의 코드는 HttpServlet에 구현된 doGet 메서드이다
// 사용자가 doGet 메서드를 오버라이드하지 않을 경우 두가지 에러코드를 반환한다.
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String protocol = req.getProtocol();
String msg = lStrings.getString("http.method_get_not_supported");
if (protocol.endsWith("1.1")) {
resp.sendError(405, msg);
// 405 Method Not Allowed - 요청한 메서드는 사용할 수 없다
} else {
resp.sendError(400, msg);
// 요청의 첫 줄 (Request Line)이 HTTP/1.1 로 끝나지 않을 경우
// 400 Bad Request - 잘못된 문법
}
}
※ 참고자료
반응형