QNA > C > Come Possiamo Chiamare Il Metodo Service Dal Metodo Doget O Dopost Nella Servlet?

Come possiamo chiamare il metodo service dal metodo doGet o doPost nella servlet?

Il metodo service() appartiene a Genericservlet e può essere sovraccaricato per supportare qualsiasi tipo di protocollo come Http, Ftp ecc.

Allora avete un servlet specializzato per gestire HttpProtocol, lo chiamiamo HttpServlet. L'HttpServlet fornisce anche un'implementazione predefinita per i metodi service() e doGet() e doPost().

Perché non dovremmo sovrascrivere il metodo service()?

Perché non è una buona pratica sovrascrivere il metodo service. Se chiamiamo uno qualsiasi dei metodi doxxx allora internamente chiamerà il metodo service della HttpServlet. Quindi non c'è bisogno di chiamarlo esplicitamente.

Ordine di esecuzione di 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 ):

  1. protected void service(HttpServletRequest req, HttpServletResponse resp) {  
  2.  
  3. String method = req.getMethod();  
  4. if (method.equals(METHOD_GET)) {  
  5. doGet(req, resp);  
  6. }  
  7. else if (method.equals(METHOD_HEAD)) {  
  8. doHead(req, resp);  
  9. }  
  10. else if (method.equals(METHOD_POST)) {  
  11. doPost(req, resp);  
  12. }  
  13. else if (method.equals(METHOD_PUT)) {  
  14. doPut(req, resp);  
  15. }  
  16. else if (method.equals(METHOD_DELETE)) {  
  17. doDelete(req, resp);  
  18. }  
  19. else if (method.equals(METHOD_OPTIONS)) {  
  20. doOptions(req,resp);  
  21. } else if (method.equals(METHOD_TRACE)) {  
  22. doTrace(req,resp);  
  23. } else {  
  24. resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);  
  25. }  

Di Kampmeier

Come chiamare il metodo Main Activity in un'altra classe in Android :: Come si chiama un metodo principale in un altro metodo principale di classe in Java?
Link utili