servlet container
은 doGet
또는 doPost
메서드를 호출할지 여부를 어떻게 알 수 있습니까?doGet 또는 doPost 메서드 호출
내가 요청을 할 때 doGet
가 호출되면, 내가 게시 요청을 할 때 doPost
이 호출되지만, 이것을 결정하는 로직이 어디에 있는지.
servlet container
은 doGet
또는 doPost
메서드를 호출할지 여부를 어떻게 알 수 있습니까?doGet 또는 doPost 메서드 호출
내가 요청을 할 때 doGet
가 호출되면, 내가 게시 요청을 할 때 doPost
이 호출되지만, 이것을 결정하는 로직이 어디에 있는지.
doGet()
또는 doPost()
(service() 메서드가 호출되며 라이프 사이클에서 읽는 동안 웹 컨테이너에서 호출됩니다.)
service()
메서드는 사용 된 HTTP 메서드를 감지하고 doGet()
, doPost()
및 HTTPServlet
에서 HTTP 요청을 처리하는 다른 방법을 위임합니다. 또한 ServletRequest
및 ServletResponse
개체를 HttpServletRequest
및 HttpServletResponse
개체에 캡슐화하며 HTTP 헤더의 추가 컨텍스트 데이터를 포함합니다.
@helderdarocha에 Tahnks.
javax.servlet.http.HttpServlet.service (HttpServletRequest req, HttpServletResponse resp)에는 그에 대한 논리가 들어 있습니다.
요청 방법 요청 헤더의 일부로 전송되는 표준 HTTP/1.1 토큰입니다
참조하시기 바랍니다에 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html
논리는 HTTP 프로토콜에 서블릿에 의해 경영 (Tomcat, Glassfish, Jetty, ...)
요청의 첫 번째 단어는 HTTP 동사이며 일반적으로 GET 또는 POST이지만 DELETE, PUT, OPTIONS, HEAD, TRACE 일 수 있습니다. , ...
서블릿 컨테이너는 서블릿의 service
메소드를 호출하지만, HttpServlet.service
메소드의 기본 구현에는 적절한 메소드로 디스패치하는 로직이 포함됩니다. Javadoc의에서 추출 : 보호 서비스 방법
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
java.io.IOException
파견 클라이언트 요청을. 이 방법을 재정의 할 필요가 없습니다.
protected void service(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
java.io.IOException
는 공공 서비스 방법에서 표준 HTTP 요청을 수신하고이 클래스에 정의 된 doXXX 방법에를 전달합니다. 이 메소드는, Servlet.service (javax.servlet.ServletRequest, javax.servlet.ServletResponse) 메소드의 HTTP 고유의 버젼입니다. 이 방법을 재정의 할 필요가 없습니다.