Qu'est-ce que Java Servlet?


J'ai lu de nombreux articles pour comprendre java servlet mais je n'ai pas réussi.

Pouvez-vous donner une brève introduction des servlets java (dans un langage facile). Comme ce qui est servlet? Quelles sont les advantges? Et tout cela.

Je ne comprends pas la différence entre les langages de programmation côté serveur (PHP, ASP) et les servlets.

Author: Matthias, 2011-08-27

10 answers

Un servlet est simplement une classe qui répond à un type particulier de requête réseau - le plus souvent une requête HTTP. Fondamentalement, les servlets sont généralement utilisés pour implémenter des applications Web - mais il existe également divers frameworks qui fonctionnent au-dessus des servlets (par exemple Struts) pour donner une abstraction de niveau supérieur au niveau "voici une requête HTTP, écrivez à cette réponse HTTP" fourni par les servlets.

Les servlets

S'exécutent dans un conteneur de servlets qui gère le côté réseau (par exemple, analyser une requête HTTP, gérer la connexion, etc.). L'un des conteneurs de servlet open source les plus connus est Tomcat.

 236
Author: Jon Skeet, 2014-02-21 10:27:33

Un servlet à son cœur est une classe java; qui peut gérer les requêtes HTTP. En règle générale, la nitty-gritty interne de la lecture d'une requête et d'une réponse HTTP sur le fil est prise en charge par les conteneurs comme Tomcat. Ceci est fait pour qu'en tant que développeur côté serveur, vous puissiez vous concentrer sur ce qu'il faut faire avec la requête HTTP et les réponses et ne pas vous soucier de traiter du code qui traite de la mise en réseau, etc. Le conteneur s'occupera de choses comme envelopper le tout dans un objet de réponse HTTP et l'envoyer au client (un navigateur).

Maintenant, la prochaine question logique à poser est de savoir qui décide de ce qu'un conteneur est censé faire? Et la réponse est; Dans le monde Java au moins, Il est guidé (notez que je n'ai pas utilisé le mot contrôlé) par des spécifications. Par exemple, les spécifications de servlet (voir ressource 2) dictent ce qu'une servlet doit être capable de faire. Donc, si vous pouvez écrire une implémentation pour la spécification, félicitations, vous venez de créer un conteneur (techniquement des conteneurs comme Tomcat implémente également d'autres spécifications et fait des choses délicates comme des chargeurs de classe personnalisés, etc. mais vous avez l'idée).

En supposant que vous ayez un conteneur, vos servlets sont maintenant des classes java dont le cycle de vie sera maintenu par le conteneur mais leur réaction aux requêtes HTTP entrantes sera décidée par vous. Vous le faites en écrivant ce que vous voulez faire dans les méthodes prédéfinies comme init(), doGet (), doPost () etc. Regardez la ressource 3.

Voici un exercice amusant pour vous. Créer un simple servlet comme dans la ressource 3 et écrire quelques système.hors.println() relevés dans sa méthode de constructeur (Oui, vous pouvez avoir un constructeur d'une servlet), init(), doGet(), doPost() les méthodes et exécuter la servlet tomcat. Voir les journaux de console et les journaux tomcat.

J'espère que cela aide, bon apprentissage.

Ressources

  1. Regardez à quoi ressemble le servlet HTTP ici (exemple Tomcat).

  2. Servlet Spécification.

  3. Servlet simple exemple .

  4. Commencez à lire le livre en ligne / PDF Il vous fournit également le téléchargement de l'ensemble du livre. Peut-être cela va vous aider. si vous venez de démarrer des servlets, c'est peut-être une bonne idée de lire le matériel avec l'API de servlet. c'est un processus d'apprentissage plus lent, mais il est beaucoup plus utile pour clarifier les bases.

 66
Author: Ayusman, 2017-10-28 21:13:23

En plus de ce qui précède, et juste pour souligner le bleedin' évident...

Pour beaucoup, c'est hyper évident, mais pour quelqu'un habitué à écrire des applications qui sont juste exécutées puis se terminent: un servlet passe la plupart de son temps à ne rien faire... attendre d'être envoyé quelque chose, une demande, puis y répondre. Pour cette raison, un servlet a une durée de vie: il est initalisé et attend ensuite, répondant à tout ce qui lui est lancé, puis est détruit. Ce qui implique qu'il a à être créé (et détruites) par quelque chose d'autre (un cadre), qu'il s'exécute dans son propre thread ou processus, et qu'il n'est rien de moins qu'à demandé. Et aussi que, par un moyen ou un autre, un mécanisme doit être mis en œuvre par lequel cette "entité" peut "écouter" les demandes.

Je suggère que la lecture des threads, des processus et des sockets jettera un peu de lumière à ce sujet: c'est assez différent de la façon dont une application de base "hello world" fonctionne.

Pourrait être soutenu que le terme "serveur" ou "servlet" est un peu exagéré. Un nom plus rationnel et plus simple pourrait être "responder".

 20
Author: mike rodent, 2017-07-05 19:43:46

Si vous êtes débutant, je pense que ce tutoriel peut donner une idée de base sur Quel est le servlet ...

Quelques points précieux sont ci-dessous à partir du lien donné.

La technologie Servlet est utilisée pour créer une application Web qui réside côté serveur et génère une page Web dynamique.

Servlet peut être décrite de plusieurs façons, selon le contexte.

  • Servlet est une technologie, c'est-à-dire utilisée pour créer du web application.
  • Servlet est une API qui fournit de nombreuses interfaces et classes, notamment documentation.
  • Servlet est une interface qui doit être implémentée pour créer tout servlet.
  • Servlet est une classe qui étend les capacités des serveurs et répondre à la demande entrante. Il peut répondre à tout type de demande.
  • Servlet est un composant web déployé sur le serveur pour créer page web dynamique. Référence:Ici.
 4
Author: Sandun Madola, 2017-08-23 06:29:03

Servlet est une technologie côté serveur qui est utilisée pour créerune page Web dynamique dans une application Web. En fait, servlet est une api qui se compose d'un groupe de classes et d'interfaces, qui a certaines fonctionnalités. Lorsque nous utilisons l'API de servlet, nous pouvons utiliser des fonctionnalités prédéfinies de classes et d'interfaces de servlet.

Cycle de vie du servlet:

Web container gère le cycle de vie de l'instance de servlet.

1 . Classe de servlet chargée

2 . Instance de servlet créée

3 . méthode init() est appelée

4 . service () méthode invoquée

5 . détruire() la méthode invoquée

Lorsque la demande est déclenchée par le client(navigateur), le conteneur Web vérifie si le servlet est en cours d'exécution ou non si oui, il appelle la méthode service() et donne la réponse au navigateur..

Lorsque le servlet n'est pas en cours d'exécution, web-container suit les étapes suivantes..

1. classloader charger le classe de servlet

2. Instancie le servlet

3. Initialise le servlet

4.appelez la méthode service ()

Après avoir servi la requête web-container attendre une heure spécifique, dans ce temps si la demande vient alors il appelle uniquement la méthode service() sinon il appelle la méthode destroy ()..

 3
Author: Navnath Adsul, 2017-05-12 04:55:23

Les servlets Java sont des modules de programme Java côté serveur qui procèdent et répondent aux demandes des clients et actualisent l'interface de servlet. Il aide à améliorer l'utilité du serveur Web avec une surcharge, un entretien et un support négligeables.

Un servlet sert de médiateur entre le client et le serveur. Comme les modules de servlet continuent à fonctionner sur le serveur, ils peuvent obtenir et réagir aux demandes du client. Les objets Demand et reaction du servlet offrent une méthode utile pour traiter HTTP demande et renvoie des informations de contenu au client.

Étant donné qu'un servlet est coordonné avec le dialecte Java, il a en outre tous les points forts Java, par exemple, une grande mobilité, une autonomie de scène, une sécurité et une disponibilité de base de données Java.

 2
Author: Poorna Senani Gamage, 2018-03-03 17:52:49

Servlet est une classe java pour répondre à une requête HTTP et produire une réponse HTTP...... lorsque nous faisons une page avec l'utilisation de HTML alors ce serait une page statique donc pour la rendre dynamique, nous utilisons SERVLET {en termes simples, on peut comprendre} Pour utiliser servlet est surmonté par JSP, il utilise le code et la balise HTML à la fois en soi..

 1
Author: Roopam, 2015-03-14 09:47:38

Qu'est-ce qu'un Servlet?

  • Un servlet est simplement une classe qui répond à un type particulier de requête réseau - le plus souvent une requête HTTP.
  • Fondamentalement, les servlets sont généralement utilisés pour implémenter des applications Web - mais il existe également divers frameworks qui fonctionnent au-dessus des servlets (par exemple Struts) pour donner une abstraction de niveau supérieur au niveau "voici une requête HTTP, écrivez à cette réponse HTTP" fourni par les servlets.
  • Les servlets s'exécutent dans un conteneur de servlet qui gère le côté réseau (par exemple, analyser une requête HTTP, gérer la connexion, etc.). L'un des conteneurs de servlet open source les plus connus est Tomcat.

  • Dans un paradigme requête/réponse, un serveur Web ne peut servir que des pages statiques au client

  • Pour servir des pages dynamiques, a nous avons besoin de Servlets.
  • Servlet n'est rien d'autre qu'un programme Java
  • Ce programme Java n'a pas de méthode principale. Il n'a que quelques méthodes de rappel.
  • Comment le serveur Web communique-t-il avec le servlet? Via le moteur de conteneur ou de servlet.
  • Servlet vit et meurt dans un conteneur web.
  • Web container est responsable de l'appel de méthodes dans un servlet. Il sait quelles méthodes de rappel le Servlet a.

Flux de Demande de

  • Le client envoie une requête HTTP au serveur Web
  • Le serveur Web transmet cette requête HTTP au conteneur Web.
  • Puisque Servlet ne peut pas comprendre HTTP, c'est un programme Java, il ne comprend que les objets, donc le conteneur web convertit cette requête en objet de requête valide
  • Web container tourne un thread pour chaque requête
  • Toute la logique métier va dans les méthodes de rappel doGet() ou doPost () dans les servlets
  • Servlet construit un objet Java response et l'envoie au conteneur. Il convertit à nouveau cela en réponse HTTP pour l'envoyer au client

Comment le conteneur sait il quel client de servlet a demandé pour?

  • Il y a un fichier appelé web.xml
  • Il s'agit du fichier maître d'un conteneur web
  • Vous avez des informations sur le servlet dans ce fichier -

    • servlets
      • Nom du servlet
      • Servlet-classe
    • servlet-mappings - le chemin comme / Login ou / Notifications est mappé ici dans
      • Nom du servlet
      • url-modèle
    • et ainsi de suite
  • Chaque servlet dans l'application web doit avoir une entrée dans ce fichier

  • Donc, cette recherche se passe comme - url-pattern> servlet-name -> servlet-class

Comment "installer" des servlets? * Eh bien, les objets servlet sont hérités de la bibliothèque-javax.servlet.* . Tomcat et Spring peuvent être utilisés pour utiliser ces objets pour s'adapter au cas d'utilisation.

Ref-Regardez ceci sur 1.5 x - https://www.youtube.com/watch?v=tkFRGdUgCsE . Cela a une explication géniale.

 0
Author: Sankalp, 2018-01-24 06:19:46

Je pense que servlet est essentiellement une classe java qui agit comme un moyen intermédiaire entre la requête HTTP et la réponse HTTP.Servlet est également utilisé pour rendre votre page Web dynamique. Supposons par exemple que si vous souhaitez rediriger vers une autre page Web sur le serveur, vous devez utiliser des servlets. Une autre chose importante est que servlet peut fonctionner sur localhost ainsi qu'un navigateur Web.

 -1
Author: Roopam, 2014-04-13 20:06:34

Vous venez d'avoir la réponse pour un servlet normalement. Cependant, je veux vous partager quelque chose à propos de Servlet 3.0

Qu'est-ce qu'un premier Servlet?

Un servlet est un composant Web géré par un conteneur et génère du contenu dynamique. Les Servlets sont des classes Java qui sont compilées à un code octet qui peut être chargé dynamiquement dans et exécuté par un Java serveur Web ou conteneur de servlet compatible avec la technologie.

Servlet 3.0 est une mise à jour spécification de Servlet 2.5 existante. Servlet 3.0 API requise de la plate-forme Java, Enterprise Edition 6. Servlet 3.0 se concentre sur l'extensibilité et le framework web pluggability. Servlet 3.0 vous apporter quelques extensions telles que la Facilité de Développement (EoD), Pluggability, Support Asynchrone et Sécurité Améliorations

Facilité de Développement

Vous pouvez déclarer des Servlets, des Filtres, des Écouteurs, des paramètres d'initialisation et presque tout peut être configuré en utilisant annotations

Pluggability

Vous pouvez créer un sous-projet ou un module avec un fragment web.XML. Il signifie qu'il permet de mettre en œuvre des exigences fonctionnelles enfichables indépendamment.

Prise en charge asynchrone

Servlet 3.0 fournit la capacité de traitement asynchrone, pour exemple: Attendre qu'une ressource devienne disponible, Générer réponse de manière asynchrone.

Améliorations De La Sécurité

Prise en charge de la sécurité des servlets authenticate, login et logout méthodes

Je l'ai trouvé à partir de Servlet Java Tutoriel

 -2
Author: David Pham, 2016-12-08 08:09:58