파게로그
method별로 특화된 서비스 함수 본문
다음과 같은 방법을 통해 GET이나 POST에 특화된 함수를 구현할 수도 있다.
@WebServlet("/hello")
public class Hello extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = res.getWriter();
out.write("<p>Welcome!</p>");
out.printf("<p>My name is %s.</p>", name);
}
}
service()가 오버라이드되어 있지 않으면 super.service(request, response)가 실행된다. 이 함수는 사용자의 요청 method를 확인한 후 doGet()이나 doPost()를 실행한다. 따라서 doGet() 또는 doPost()가 오버라이드되어 있지 않으면 오류가 발생한다.
즉 service()를 오버라이드 한 후 GET, POST를 모두 처리하든지, 또는 doGet()과 doPost() 중 필요한 것만 오버라이드해서 요청을 처리할 수 있다.
만약 service() 함수를 오버라이드하고, 그 내에 super.service()가 있으면?
doGet() 함수가 구현되어 있지 않아서 오류가 발생한다.
service() 구현 없이, doGet() 또는 doPost()만 구현할 수 있다.
cf. doDelete(), doPut() 등은 잘 사용되지 않는다고 한다. -> 이게 RESTful하지 않은 설계들인 건가?
GET, POST 중 하나만 처리할 때에는 doGet(), doPost() 중 하나만 구현하고,
GET, POST 둘 다 처리할 때에는 service()를 구현하는 것이 바람직하다.
'콤퓨타 왕기초 > JSP' 카테고리의 다른 글
[JDBC] 기본 실습 (0) | 2021.03.13 |
---|---|
[JDBC] JDBC 개요 (0) | 2021.03.13 |
동적인 페이지 출력을 위한 원시적인 방법 (0) | 2020.12.18 |
redirect (0) | 2020.12.17 |
상태유지를 위한 Application, Session, Cookie (0) | 2020.12.17 |
Comments