Je sais que les servlets sont constitués des méthodes init, service et destroy. Je sais aussi qu'il existe les méthodes doPost et doGet disponibles. La question est de savoir comment la méthode service est liée aux méthodes doPost et doGet. Sont-ils appelés depuis la méthode service après que le request a été identifié? Le service est-il omis lorsque les méthodes do sont implémentées? J'ai besoin de quelques éclaircissements ici.

Par exemple, dans le cycle de vie d'un Servlet qui reçoit une seule requête POST, j'aurais deviné que la commande serait:

  • init() est exécuté
  • lorsque init() est terminé, le service() est appelé
  • service() identifie le request et appelle la méthode doPost()
  • lorsque doPost() et service() terminent tous les deux, la méthode destroy() est exécutée

Serait-ce vrai?

3
Rakim 1 janv. 2016 à 15:51

3 réponses

Meilleure réponse

Non, ce n'est pas juste.

init() et destroy() ne sont appelés qu'une seule fois. Le servlet est instancié par le conteneur et sa méthode init() est appelée. Cela se produit généralement au démarrage ou lorsque la première demande de servlet arrive.

Puis toutes les requêtes sont gérées par la méthode service(), qui appelle la méthode doXxx() appropriée en fonction du type de requête (comme documenté).

Ensuite, lorsque l'application n'est pas déployée (ou que le serveur est arrêté), la méthode destroy() est appelée.

Le javadoc est votre ami. Lis le. Il contient toutes les réponses à vos questions. Les spécifications sont également disponibles gratuitement.

2
JB Nizet 1 janv. 2016 à 13:01

D'après la documentation, service est responsable de l'envoi à la méthode de servlet appropriée, basée sur la méthode HTTP appelée ( POST , GET ...)

Reçoit les requêtes HTTP standard de la méthode de service public et les distribue aux méthodes doXXX définies dans cette classe. Cette méthode est une version spécifique à HTTP de la méthode Servlet.service (javax.servlet.ServletRequest, javax.servlet.ServletResponse). Il n'est pas nécessaire de remplacer cette méthode.

HTTPServlet.service

2
Arnaud 1 janv. 2016 à 13:02

C'est le flux de base, - Le servlet est initialisé en appelant la méthode init ().

  • Le servlet appelle la méthode service () pour traiter la demande d'un client.
  • La méthode de service appelle doGet ou doPost en fonction de la demande type provient du client si get request est venu doGet est invoqué si post request doPost est invoqué

  • Le servlet se termine en appelant la méthode destroy ().

  • Enfin, le servlet est récupéré par le garbage collector du JVM.

La méthode service () est la principale méthode pour effectuer la tâche réelle. Le conteneur de servlet (c'est-à-dire le serveur Web) appelle la méthode service () pour gérer les demandes provenant du client (navigateurs) et pour écrire la réponse formatée au client.

Chaque fois que le serveur reçoit une demande de servlet, le serveur génère un nouveau thread et appelle le service. La méthode service () vérifie le type de requête HTTP (GET, POST, PUT, DELETE, etc.) et appelle les méthodes doGet, doPost, doPut, doDelete, etc. selon le cas.

Cycle de vie du servlet entrez la description de l'image ici

2
Narendra Jaggi 1 janv. 2016 à 13:13