Como podemos chamar o método de serviço do doGet ou doPost no servlet?
O método service() pertence ao Genericservlet e pode ser sobrecarregado para suportar qualquer tipo de protocolo como Http,Ftp etc.
Então você tem um servlet especializado para lidar com o HttpProtocol, nós o chamamos de HttpServlet. O HttpServlet também fornece implementação padrão para os métodos service() e doGet() e doPost().
Por que não devemos substituir o método service()?
Since It'não é uma boa prática para substituir o método service. Se chamarmos qualquer um dos métodos doxxx então internamente ele irá chamar o método de serviço do HttpServlet. Portanto, não é necessário que você o chame explicitamente.
Order of Execution of service():
service(ServletRequest,ServletResponse)
-->calls
-->service(HttpServletRequest req,HttpServletResponse res)
-->calls
-->doGet/doPost(HttpServletRequest req,HttpServletResponse res)
This is how you can override the service in case you want to (code given by Tomasz Nurkiewicz from SO community Overriding HttpServlet service method ):
- protected void service(HttpServletRequest req, HttpServletResponse resp) {
- String method = req.getMethod();
- if (method.equals(METHOD_GET)) {
- doGet(req, resp);
- }
- else if (method.equals(METHOD_HEAD)) {
- doHead(req, resp);
- }
- else if (method.equals(METHOD_POST)) {
- doPost(req, resp);
- }
- else if (method.equals(METHOD_PUT)) {
- doPut(req, resp);
- }
- else if (method.equals(METHOD_DELETE)) {
- doDelete(req, resp);
- }
- else if (method.equals(METHOD_OPTIONS)) {
- doOptions(req,resp);
- } else if (method.equals(METHOD_TRACE)) {
- doTrace(req,resp);
- } else {
- resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
- }
- }
Artigos semelhantes
- Como chamar o método Atividade Principal em outra classe no Android
- Como um método principal é chamado em outra classe de método principal em Java?
- Como fazer um aplicativo no Android através do qual podemos chamar alguém sem ir ao teclado de discagem em todas as plataformas Android
- Haverá algum dia um método melhor para preservar os videojogos do que a emulação? Este método poderia ser legal?