Aujourd'hui, nous sommes tous conscients de la nécessité de créer pages Web dynamiques c'est-à-dire ceux qui peuvent modifier le contenu du site en fonction du temps ou générer le contenu en fonction de la demande reçue du client. Si vous aimez coder en Java, vous serez heureux de savoir qu'en utilisant Java, il existe également un moyen de générer des pages Web dynamiques. Servlet Java . Mais avant d’avancer sur notre sujet, comprenons d’abord la nécessité des extensions côté serveur.
Qu’est-ce que la servlet Java ?
Les servlets Java sont les programmes Java qui s'exécutent sur le serveur Web ou le serveur d'applications compatible Java. Ils sont utilisés pour gérer la requête obtenue du serveur Web, traiter la requête, produire la réponse, puis renvoyer une réponse au serveur Web.
Propriétés du servlet Java
Les propriétés des Servlets sont les suivantes :
- Les servlets fonctionnent côté serveur.
- Les servlets sont capables de gérer des requêtes complexes obtenues du serveur Web.
Architecture des servlets Java
L'architecture des servlets peut être représentée à partir de l'image elle-même comme indiqué ci-dessous :
Exécution de servlets Java
Exécution des servlets essentiellement implique six étapes de base :
- Les clients envoient la demande au serveur Web.
- Le serveur Web reçoit la demande.
- Le serveur Web transmet la requête au servlet correspondant.
- Le Servlet traite la demande et génère la réponse sous forme de sortie.
- Le Servlet renvoie la réponse au serveur Web.
- Le serveur Web renvoie la réponse au client et le navigateur client l'affiche à l'écran.
Parlons maintenant du point excentrique : pourquoi avons-nous besoin d'extensions côté serveur ?
Besoin d'extensions côté serveur
Le Extensions côté serveur ne sont rien d'autre que les technologies utilisées pour créer des pages Web dynamiques. En fait, pour fournir la fonctionnalité de pages Web dynamiques, les pages Web ont besoin d'un conteneur ou d'un serveur Web. Pour répondre à cette exigence, les fournisseurs de serveurs Web indépendants proposent des solutions propriétaires sous la forme de API ( Interface de programmation d'applications).
Ces Apis nous permettent de créer des programmes pouvant fonctionner avec un serveur Web. Dans ce cas, Servlet Java est également l'une des API composantes de Java Platform Enterprise Edition (aujourd'hui connu sous le nom de « Jakarta EE ») qui établit des normes pour la création d'applications Web dynamiques en Java.
Avant d’apprendre quelque chose, il est important de connaître la nécessité de ce quelque chose, ce n’est pas comme si c’était la seule technologie disponible pour créer des pages Web dynamiques. La technologie Servlet est similaire à d'autres extensions de serveur Web telles que Interface de passerelle commune ( CGI) et des scripts Hypertext Preprocessor (PHP). Cependant, les servlets Java sont plus acceptables car ils résolvent les limitations de Image de synthèse tels que de faibles performances et une faible évolutivité.
Qu'est-ce que CGI (Common Gateway Interface) ?
Image de synthèse est en fait une application externe écrite à l'aide de l'un des langages de programmation tels que C ou C++ et celui-ci est responsable du traitement des demandes des clients et de la génération de contenu dynamique.
java comment convertir une chaîne en entier
Dans l'application CGI, lorsqu'un client fait une demande d'accès à des pages Web dynamiques, le serveur Web effectue les opérations suivantes :
- Il localise d'abord la page Web demandée c'est à dire l'application CGI requise à l'aide de l'URL.
- Il crée ensuite un nouveau processus pour répondre à la demande du client.
- Appelle l'application CGI au sein du processus et transmet les informations de demande à l'application.
- Collecte la réponse de l'application CGI.
- Détruit le processus, prépare la réponse HTTP et l'envoie au client.
Alors, dans Image de synthèse le serveur doit créer et détruire le processus pour chaque demande. Il est facile de comprendre que cette approche est applicable pour gérer un petit nombre de clients, mais à mesure que le nombre de clients augmente, la charge de travail sur le serveur augmente et donc le temps nécessaire au traitement des demandes augmente.
Différence entre les servlets Java et CGI
Servlet | CGI (Interface de passerelle commune) |
---|---|
Les servlets sont portables et efficaces. | CGI n'est pas portable. |
Dans les Servlets, le partage de données est possible. | En CGI, le partage de données n'est pas possible. |
Les servlets peuvent communiquer directement avec le serveur Web. | CGI ne peut pas communiquer directement avec le serveur Web. |
Les servlets sont moins chers que CGI. | CGI est plus cher que les Servlets. |
Les servlets peuvent gérer les cookies. | CGI ne peut pas gérer les cookies. |
API de servlets
Les servlets sont construits à partir de deux packages :
- javax.servlet (de base)
- javax.servlet.http(Avance)
Les différentes classes et interfaces présentes dans ces packages sont :
comment convertir une chaîne en int java
Composant | Taper | Emballer |
---|---|---|
Servlet | Interface | javax.servlet.* |
Demande de servlet | Interface | javax.servlet.* |
ServletRéponse | Interface | javax.servlet.* |
Servlet générique | Classe | javax.servlet.* |
Serveur HTTP | Classe | javax.servlet.http.* |
HttpServletRequest | Interface | javax.servlet.http.* |
Réponse HttpServlet | Interface | javax.servlet.http.* |
Filtre | Interface | javax.servlet.* |
ServletConfig | Interface | javax.servlet.* |
Avantages d'une servlet Java
- La servlet est plus rapide que CGI car cela n’implique pas la création d’un nouveau processus pour chaque nouvelle demande reçue.
- Les servlets, tels qu'écrits en Java, sont indépendants de la plate-forme.
- Supprime la surcharge liée à la création d'un nouveau processus pour chaque requête car le servlet ne s'exécute pas dans un processus distinct. Il n’existe qu’une seule instance qui gère toutes les requêtes simultanément. Cela économise également la mémoire et permet à un servlet de gérer facilement l'état du client.
- Il s'agit d'un composant côté serveur, donc Servlet hérite du sécurité fournis par le serveur Web.
- Le API conçu pour Java Servlet acquiert automatiquement les avantages des plates-formes Java tels que l'indépendance de la plate-forme et la portabilité. De plus, il peut évidemment utiliser la large gamme d'API créées sur les plateformes Java telles que JDBC pour accéder à la base de données.
- De nombreux serveurs Web adaptés à un usage personnel ou à des sites Web à faible trafic sont proposés gratuitement ou à des tarifs extrêmement élevés. coûts bon marché par exemple. Servlet Java. Cependant, la majorité des serveurs Web commerciaux sont plutôt chers, à l’exception notable d’Apache, qui est gratuit.
Le conteneur de servlets
Conteneur de servlets , aussi connu sous le nom Moteur de servlets, est un ensemble intégré d'objets qui fournissent un environnement d'exécution pour les composants Java Servlet. En termes simples, il s'agit d'un système qui gère les composants Java Servlet au-dessus du serveur Web pour gérer les requêtes des clients Web.
Services fournis par le conteneur Servlet :
- Services réseau : Charge une classe Servlet. Le chargement peut provenir d'un système de fichiers local, d'un système de fichiers distant ou d'autres services réseau. Le conteneur Servlet fournit les services réseau sur lesquels la demande et la réponse sont envoyées.
- Décoder et encoder les messages MIME : Fournit le service de décodage et d’encodage des messages MIME.
- Gérer le conteneur de servlets : Gère le cycle de vie d'un servlet.
- La gestion des ressources Gère les ressources statiques et dynamiques, telles que les fichiers HTML, les servlets et les pages JSP.
- Service de sécurité: Gère l’autorisation et l’authentification de l’accès aux ressources.
- Gestion des sessions : Maintient une session en ajoutant un ID de session au chemin de l'URL.
Conclusion
Servlets Java sont des composants cruciaux pour définir la logique métier et gérer les requêtes Web complexes. Ces composants favorisent le développement dynamique d'un site Web et ont un grand potentiel pour modifier la dynamique des applications. Voici quelques-unes des fonctionnalités clés que nous apprenons dans cet article :
- Les servlets Java facilitent le développement d'applications côté serveur et fournissent un moyen de gérer du contenu dynamique pour créer des sites Web robustes et interactifs.
- Dès que la requête atteint le serveur Web, une instance de servlet est initialisée à l'aide de chaleur() méthode, et la requête HTTP selon son type peut être gérée par les méthodes doGet() ou doPost().
- Les servlets rendent notre application Web plus réactive et efficace car elles ne créent pas et ne détruisent pas de processus à chaque fois qu'une demande est reçue.
FAQ sur les servlets Java
T1. Quel est le cycle de vie du servlet Java ?
Java Servlet a un cycle de vie prédéfini allant de l'initialiseur (allocation de mémoire) jusqu'à la destruction de l'objet (mémoire libérée). Cela se déroule selon les étapes suivantes :
- init() – est appelé dès que la requête est reçue par le serveur Web et qu’une nouvelle instance de servlet est initialisée.
- service() – pour gérer la demande du client et rediriger la demande vers un doGet() ou doPost() approprié
- destroy() – appelé lorsque la requête est traitée, la réponse est renvoyée au client et enfin la mémoire allouée au servlet est libérée.
Q2. Comment configurer une servlet Java ?
La configuration du servlet Java est définie dans un descripteur de déploiement déposer - web.xml. Bien que cela soit désormais un héritage, car la plupart des applications basées sur des servlets utilisent aujourd'hui une configuration basée sur l'annotation pour configurer un servlet Java à l'aide de l'annotation @WebServlet.
Exemple : @WebServlet(name = MyServlet, urlPatterns = /myServlet)
Q3. Qu'est-ce qu'un filtre de servlet ?
Un filtre de servlet est un composant supplémentaire permettant d'effectuer des travaux de pré-post-traitement sur les requêtes Web, tels que la journalisation, la surveillance, le débogage et le dépannage.