Maison >Java >javaDidacticiel >Comment configurer le servlet

Comment configurer le servlet

(*-*)浩
(*-*)浩original
2019-05-16 16:36:529793parcourir


Java Servlet est un composant Web basé sur la technologie Java. Il s'exécute côté serveur et est géré par le conteneur Servlet. . Servlet est une classe Java indépendante de la plate-forme. Écrire un servlet consiste en fait à écrire une classe Java selon la spécification Servlet.

Le fonctionnement du servlet nécessite un environnement d'exécution, c'est-à-dire un conteneur Servlet. Ici, nous utilisons Tomacat. En tant que serveur Web, Tomcat a pour fonction de traiter les pages HTML. De plus, c'est également un conteneur Servlet et JSP.

Comment configurer le servlet

Implémentez un exemple helloWord.

Cours recommandé : Tutoriel Java.

Méthode 1 : Pour écrire une classe Servlet en implémentant l'interface Servlet, vous devez implémenter les 5 méthodes définies dans l'interface. Le code est le suivant :

package day_052102;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/*
 这里通过实现Servlet接口来编写一个简单的Servlet
 */
public class ServletDemo implements Servlet
{
    public void init(ServletConfig config) throws ServletException
    {
    }
    public ServletConfig getServletConfig()
    {
        
        return null;
    }
    public String getServletInfo()
    {
        return null;
    }
    public void destroy()
    {
    }
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException
    {
        PrintWriter out=res.getWriter();
        out.print("hello World!");
        out.close();
    }
}
Passez ensuite à la configuration web.xml, le code est le suivant :

<servlet>
     <servlet-name>ServletDemo</servlet-name>
     <servlet-class>day_052102.ServletDemo</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>ServletDemo</servlet-name>
     <url-pattern>/ServletDemo</url-pattern>
 </servlet-mapping>
Cliquez sur le bouton Exécuter pour démarrer le serveur tomacat, puis saisissez http://localhost:8080/day_052102/ServletDemo dans le navigateur pour implémentez un exemple d'affichage de hello World sur la page. Les résultats sont les suivants.


Méthode 2  : Hériter de la classe abstraite GenericServlet, qui définit un Servlet général.

public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
L'exemple de code pour implémenter hellWord est le suivant :

public class GenericServletDemo extends GenericServlet
{
    @Override
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException
    {
        PrintWriter out=res.getWriter();
        out.println("hello World!");
        out.close();        
    }

}

Méthode 3 : En héritant de la classe abstraite HttpServlet, qui hérite de la classe GenericServlet.

PS : Il n'y a pas de méthodes abstraites dans la classe HttpServlet. Cette classe remplace la méthode de service. Elle appellera la méthode doGet ou doGet en fonction de la requête. Une partie du code source est la suivante :

protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException 
{
        String method = req.getMethod();
        if (method.equals(METHOD_GET))   //当请求方式为GET时,调用doGet方法
        {   
            long lastModified = getLastModified(req);
            if (lastModified == -1) 
            {
                // servlet doesn't support if-modified-since, no reason
                // to go through further expensive logic
                doGet(req, resp);
            } 
            else
            {
                long ifModifiedSince;
                try 
                {
                    ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
                } 
                catch (IllegalArgumentException iae)
                {
                    // Invalid date header - proceed as if none was set
                    ifModifiedSince = -1;
                }
                if (ifModifiedSince < (lastModified / 1000 * 1000))
                {
                    // If the servlet mod time is later, call doGet()
                    // Round down to the nearest second for a proper compare
                    // A ifModifiedSince of -1 will always be less
                    maybeSetLastModified(resp, lastModified);
                    doGet(req, resp);
                }
                else
                {
                    resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                }
            }
        }
Si vous remplacez la méthode de service dans la classe que vous écrivez, alors la méthode de service est remplacée. Le conteneur de servlet La demande est traitée par votre méthode de service remplacée.

public class HttpServletDemo extends HttpServlet
{
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        PrintWriter out=resp.getWriter();
        out.println("hello!");
        out.close();
    }
}


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