Maison >Java >javaDidacticiel >Explication détaillée des connaissances de base des servlets en Java

Explication détaillée des connaissances de base des servlets en Java

黄舟
黄舟original
2017-07-26 15:11:202487parcourir

Cet article présente principalement en détail les informations pertinentes sur les bases du servlet, qui ont une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Le servlet est une technologie spécialement utilisée pour développer des ressources Web dynamiques. Sun fournit une interface Servlet dans son API (bien sûr, nous n'implémenterons pas directement cette interface, mais il vaudra mieux hériter de sa classe d'implémentation. Par conséquent, Servlet au sens étroit fait référence à cette interface, et au sens large,). Servlet fait référence à cette interface. Servlet fait référence à toute classe qui implémente cette interface Servlet. Utiliser Servlet pour développer une ressource Web dynamique revient en fait à développer un programme Java pour afficher des données vers le navigateur.

Servlet est en fait un programme Java qui s'exécute sur le serveur. Servlet est l'une des treize technologies de J2EE. Par conséquent, nous ne pouvons pas lire la documentation de l'API J2SE. Si vous êtes débutant, il est préférable de lire la documentation de l'API J2SE. documentation spécialisée sur l'API Servlet. Jetons un coup d'œil au document d'introduction de Servlet :

De cette introduction à l'interface Servlet, nous pouvons voir que si vous souhaitez implémenter l'interface Servlet, vous devez implémenter toutes ses méthodes. Servlet Le programme s'exécute sur le serveur Web et est utilisé pour recevoir et répondre aux demandes des clients. Bien sûr, comme je l'ai déjà dit, si vous écrivez une classe pour implémenter l'interface Servlet, vous devrez remplacer toutes les méthodes du Servlet, mais nous pouvons hériter de sa classe d'implémentation, comme la classe GenericServlet ou la classe HttpServlet, donc que nous devons uniquement remplacer ceux que nous voulons remplacer. Juste la méthode.

Les méthodes de Servlet incluent ses méthodes de cycle de vie et ses méthodes hors cycle de vie. Dans Servlet, les méthodes de cycle de vie incluent : init (ServletConfig config), destroy (), service (ServletRequest req, ServletResponse res), c'est-à-dire l'initialisation du servlet, le service de réponse aux requêtes et la destruction du servlet.

En plus des méthodes de cycle de vie du servlet, il existe également des méthodes hors cycle de vie, telles que les méthodes getServletConfig() et getServletInfo(), qui peuvent obtenir des informations sur le servlet.

Le cycle de vie du Servlet fait référence au processus allant de la création à la réponse aux demandes des clients et enfin à la destruction d'une instance de Servlet. Le processus spécifique est le suivant :

1. Le serveur crée une instance de Servlet, c'est-à-dire qu'il appelle la méthode init()

2. Une requête client (objet) atteint le serveur ;

 3. Le serveur envoie la requête au Servlet ;

 4. Le Servlet génère une réponse (objet) à la requête

 5. Le serveur active la méthode service() de Servlet, passant l'objet de requête et L'objet de réponse est utilisé comme paramètre ;

6. La méthode Service() obtient les informations de l'objet de requête, traite la requête, accède aux ressources et obtient les informations requises ;

7. La méthode Service() utilise la méthode objet de réponse, la réponse est renvoyée au serveur et atteint finalement le client. La méthode Service peut également activer d'autres méthodes pour gérer les requêtes, telles que la méthode doGet() ou doPost()

8. Pour plus de requêtes client, le serveur crée de nouveaux objets de requête et de réponse et active toujours ce servlet ; . méthode de service, transmettez-lui ces deux objets en tant que paramètres, et il n'est pas nécessaire d'appeler la méthode init(). Généralement, les servlets ne sont initialisés qu'une seule fois. Lorsque le serveur n'a plus besoin du servlet (généralement le serveur est arrêté), le serveur appelle la méthode destroy() du servlet pour détruire le servlet.

Comme le montre ce qui précède, les trois méthodes du cycle de vie du Servlet sont appelées par le serveur, ce qui peut être considéré comme étant à un certain moment du processus allant de l'existence du Servlet à sa destruction (si un événement est déclenché) La méthode qui doit être exécutée est appelée méthode de cycle de vie.

Par conséquent, la chose la plus importante dans Servlet est la méthode service(). Si vous souhaitez transférer des ressources du serveur vers le client ou envoyer des données au client, cela se fera dans le fichier client. méthode service().

À en juger par la méthode service(ServletTequest req, ServletResponse res), non seulement la méthode service() est appelée et exécutée par le serveur, mais également l'objet de requête ServletTequest et l'objet de réponse ServletResponse sont également fournis par le serveur. . Si nous voulons écrire un simple Une fois les données fournies au client, vous pouvez utiliser l'objet de réponse ServletResponse dans la méthode service() :

Pour commencer, nous n'avons pas besoin d'utiliser le développement. outil IDE pour écrire Servlet, mais écrivez-le d'abord manuellement, ce qui aidera à comprendre les principes sous-jacents de Servlet. Créez mon application Web dans le répertoire [webapps] de Tomcat. Le répertoire où se trouve l'application Web est [myservlet]. Nous créons d'abord [WEB-INF] dans le répertoire [myservlet], puis créons [classes] dans [WEB]. -INF], [répertoire lib] et le fichier web.xml, dans le répertoire [classes], créez mon programme Java : FirstServlet.java

Parce que le servlet que nous écrivons est appelé par le serveur, la classe d'implémentation du servlet que nous créons doit être publique Permettez-moi de commencer par dire que nous n'avons pas besoin d'implémenter toutes les méthodes du servlet, nous demandons donc au client Pour transférer des données, il nous suffit de remplacer la méthode service(). Il nous suffit ensuite d'hériter de la classe d'implémentation Servlet, puis d'obtenir le flux de sortie de l'objet correspondant ServletResponse ServletOutputStream pour envoyer les données au client. En même temps, comme la sortie est un flux d'octets, vous devez donc convertir les caractères en un tableau d'octets, puis écrire manuellement le nom du package personnalisé et le package Java à importer :


package fjdingsd.web;
import java.io.*;
import javax.servlet.*;
public class FirstServlet extends GenericServlet{
  public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
  {
   OutputStream out = res.getOutputStream();
   out.write("Hello Servlet".getBytes());
  }
}

Utilisez cmd pour cela Compilez le programme Java, mais veuillez noter que "javac" importe uniquement le package J2SE par défaut, mais n'inclut pas le package J2EE. Alors, où allons-nous trouver le package J2EE Servlet ? En fait, comme Tomcat prend en charge Servlet, le répertoire [lib] de Tomcat contient le package JAR Servlet :

Nous devons donc d'abord définir la variable d'environnement dans cmd en effectuant cette étape : définir classpath = %classpath%; path/servlet-api.jar

Ensuite, vous pouvez compiler le programme Java tout de suite : javac –d program name.java

<.>("-d" représente le répertoire où le fichier .class est stocké pour la commande suivante, "." représente le répertoire courant)

Après une compilation réussie, vous pouvez voir qu'il y a déjà des bytecodes dans le répertoire où se trouve l'application web. Les noms des fichiers et des packages sont :

Bien sûr, il existe déjà un programme Servlet, mais le navigateur ne peut pas encore y accéder car le Servlet le programme n’a pas encore défini de chemin d’accès externe. Alors, où pouvons-nous configurer le fichier de bytecode Servlet que nous venons de créer dans un chemin auquel le navigateur peut accéder ?

La réponse se trouve dans le fichier web.xml de cette application Web. Maintenant, nous prenons uniquement le format le plus simple. Comme mentionné dans "Méthode d'apprentissage détaillée de Tomcat (3)", modifiez le fichier web.xml de Tomcat et copiez-le. tail dans le "modèle" dans votre propre site Web. Le 700b5f17c4d842e4bd410f680f40946b dans 46309ed845064fdb06e746051efff9e0 et 870ae7edaa11700bcea972d006efb06e le nom du package et le nom de la classe, et 13490170b0467d452e3c2241fd2eb18a dans le mappage> est le chemin d'accès externe que nous pouvons définir, et le chemin peut être personnalisé. Le paramètre de ce chemin n'a pas besoin d'être écrit, sinon ce sera la valeur par défaut. Ensuite, l'adresse d'entrée dans le navigateur n'a besoin que du nom de l'application Web, mais même si elle est définie sur la valeur par défaut, le contenu dans. 66e1775cbd9d5002635ae3285442ba88 doit également être Il y a une barre oblique : "/".

À ce moment, ouvrez le serveur Tomcat et vous pourrez accéder au programme Servlet que vous venez d'écrire dans le navigateur. Le format d'entrée est : nom d'hôte : port (80 ne le fait pas. Obligatoire)/nom de l'application Web/chemin d'accès externe

S'il s'agit d'un accès au servlet, il vous suffit d'écrire le chemin d'accès externe. Si vous écrivez le nom du. Servlet, le même inaccessible, comme indiqué ci-dessous :

Il y a un autre problème si les chemins d'accès externes de plusieurs servlets dans le fichier XML sont configurés de la même manière, ils le seront également. être inaccessible, comme suit Figure :

Par conséquent, veuillez configurer différents chemins d'accès externes dans le web.xml personnalisé pour différentes servlets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn