Notes d'étude Jsp&Servelet (1)
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:15:10
1.1 Écrire un programme de servlets
1.2 Écrire un programme Jsp
1.3 Compiler un programme Servlet
1.4 Packager un programme Servlets et Jsps
1.5 Créer un descripteur de déploiement
1.1 Écrire un programme de servlets
Problème Vous souhaitez écrire un servlet en tant qu'application Web Solution Écrivez une classe Java qui hérite de javax.servlet.http.HttpServlet. Tout d’abord, un package de classe servlet.jar doit être versé. Vous aurez besoin de la bibliothèque de classes à l'intérieur pour compiler ce programme de servlet.
Discussion Un programme servlet est une classe Java utilisée pour répondre au contenu dynamique demandé par le client via le réseau. Si vous êtes familier avec les programmes (CGI), les servlets de technologie Java peuvent remplacer complètement les programmes CGI. Souvent appelé composant Web, un programme de servlet exécuté dans un environnement d'exécution sera fourni par un conteneur de servles tel que Tomcat et Bea WebLogic.
Remarque : Un conteneur Web peut être
Les servlets sont installés dans un conteneur Web dans le cadre d'une application Web. Cette application contiendra des ressources WEB. Comme les pages HTML, les images, les clips multimédias, les servlets, les jsps, les fichiers de configuration XML, les classes d'exécution Java et les bibliothèques de classes, lorsqu'une application Web est déployée dans un conteneur Web, le conteneur génère et charge les instances de la classe de servlet Java dans la JVM. . Gérer les requêtes de servlets.
Toutes les servlets héritent de l'interface javax.servlet.Servlet. Les programmeurs qui développent des applications Web écrivent un servlet spécial
Héritée de javax.servlet.http.HttpServlet, une classe abstraite implémente l'interface Servlet et est spécifiquement conçue pour gérer les requêtes HTTP.
Lorsqu'un conteneur Web génère une instance de servlet, sa séquence de base est la suivante :
1. Le conteneur de servlet appelle d'abord la méthode init() du servlet, qui initialisera une ressource que le servlet devra utiliser. Répertorié comme enregistreur. Cette méthode init() ne sera appelée qu'une seule fois pendant tout le cycle de vie du servlet.
2. La méthode init() initialise un objet qui hérite de l'interface java.servlet.ServletConfig. Cet objet permet à la servlet d'initialiser les paramètres déclarés dans le descripteur de déploiement. ServletConfig donne également au servlet l'accès à un objet javax.servlet.ServletContext, que le servlet peut utiliser pour enregistrer des informations, distribuer des requêtes à d'autres composants Web et utiliser d'autres ressources Web dans la même application.
3. Le conteneur de servlet appelle la méthode service() de ce servlet pour répondre à certaines requêtes du servlet. Basé sur HttpServlets, service() appelle automatiquement la méthode HTTP appropriée pour gérer la requête en appelant la méthode doGet() ou doPost() du servlet. Pour plusieurs exemples, l'utilisateur envoie une requête Post et la servlet répond à la requête en exécutant la méthode doPost().
4. Lors de l'appel des méthodes doPost() et doGet() des deux principaux HttpServlets, le conteneur de servlets générera des objets javax..servlet.http.HttpServletRequest et HttpServletResponse et les transmettra en tant que paramètres à ces méthodes de traitement des requêtes.
http://www.downcodes.com/
5. Gérez le cycle de vie d'un servlet, ou déterminez le temps de traitement de cette instance de servlet sur la requête de requête et la durée d'existence sur la machine virtuelle Java. Lorsqu'un conteneur de servlets commence à supprimer un servlet, la méthode destroy() du servlet sera appelée, dans laquelle toutes les ressources, telles qu'une connexion à une base de données, pourront être libérées.
Exemple Un HttpServlet typique
paquet com.mydev ;
importer java.io.IOException ; importer java.io.PrintWriter ;
importer java.util.Enumeration ; importer javax.servlet.ServletException ;
importer javax.servlet.http.HttpServlet ;
importer javax.servlet.http.HttpServletRequest ;
importer javax.servlet.http.HttpServletResponse ;
//Doit hériter de l'interface HttpServlet
la classe publique FirstServlet étend HttpServlet ...{
public void doGet (requête HttpServletRequest, réponse HttpServletResponse) renvoie ServletException, java.io.IOException ...{
//définit le type MIME de la réponse, "text/html"
réponse.setContentType("text/html");
//utilise un PrintWriter pour envoyer des données texte au client qui a demandé le
//servlet
java.io.PrintWriter out = réponse.getWriter( );
//Commencer à assembler le contenu HTML out.println("<html><head>");
out.println("<title>Page d'aide</title></head><body>");
out.println("<h2>Veuillez soumettre vos informations</h2>");
//assurez-vous que method="post" pour que la méthode du service servlet
// appelle doPost dans la réponse à ce formulaire
out.println( "<form method="post" action ="" + request.getContextPath( ) + "/firstservlet" >");
out.println("<table border="0"><tr><td valign="top">");
out.println("Votre prénom : </td> <td valign="top">");
out.println("<input type="text" name="firstname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Votre nom : </td> <td valign="top">");
out.println("<input type="text" name="lastname" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Votre email : </td> <td valign="top">");
out.println("<input type="text" name="email" size="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("<input type="submit" value="Submit Info"></td></tr>");
out.println("</table></form>"); out.println("</body></html>");
}
//faireObtenir
public void doPost (requête HttpServletRequest, réponse HttpServletResponse) renvoie ServletException, java.io.IOException ...{
//afficher les noms et valeurs des paramètres
Énumération paramNames = request.getParameterNames( );
Chaîne parName ;
// ceci contiendra le nom du paramètre
booléen videEnum = faux ;
si (! paramNames.hasMoreElements( ))
videEnum = vrai ;
//définit le type MIME de la réponse, "text/html"
réponse.setContentType("text/html");
//utilise un PrintWriter pour envoyer des données texte au client
java.io.PrintWriter out = réponse.getWriter( );
// Commencer à assembler le contenu HTML
out.println("<html><head>");
out.println("<title>Paramètres soumis</title></head><body>");
si (emptyEnum) ...{
out.println( "<h2>Désolé, la requête ne contient aucun paramètre</h2>");
} autre ...{
out.println( "<h2>Voici les valeurs des paramètres soumis</h2>");
}
while(paramNames.hasMoreElements( )) ...{
parName = (String) paramNames.nextElement( );
out.println( "<strong>" + parName + "</strong> : " + request.getParameter(parName));
out.println("<br />");
}//alors que
out.println("</body></html>");
}
//doPost
}
Vous remarquerez peut-être que doGet() et doPost() lanceront chacun ServletException et IOException. C'est parce que réponse.getWriter() lancera une exception IO.
http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx