Heim > Java > javaLernprogramm > So konfigurieren Sie das Servlet

So konfigurieren Sie das Servlet

(*-*)浩
Freigeben: 2019-05-16 17:03:02
Original
9798 Leute haben es durchsucht


Java Servlet ist eine auf Java-Technologie basierende Webkomponente, die auf der Serverseite ausgeführt wird und vom Servlet-Container verwaltet wird . Servlet ist eine plattformunabhängige Java-Klasse. Beim Schreiben eines Servlets wird tatsächlich eine Java-Klasse gemäß der Servlet-Spezifikation geschrieben.

Der Servlet-Betrieb erfordert eine laufende Umgebung, also einen Servlet-Container. Hier verwenden wir Tomacat. Als Webserver hat Tomcat die Funktion, HTML-Seiten zu verarbeiten. Darüber hinaus ist es auch ein Servlet- und JSP-Container.

So konfigurieren Sie das Servlet

Implementieren Sie ein helloWord-Beispiel.

Empfohlener Kurs: Java-Tutorial.

Methode 1: Um eine Servlet-Klasse durch Implementierung der Servlet-Schnittstelle zu schreiben, müssen Sie die 5 in der Schnittstelle definierten Methoden implementieren. Der Code lautet wie folgt:

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();
    }
}
Nach dem Login kopieren

Fahren Sie dann mit der web.xml-Konfiguration fort. Der Code lautet wie folgt:

<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>
Nach dem Login kopieren

Klicken Sie auf die Schaltfläche „Ausführen“, um den Tomacat-Server zu starten, und geben Sie dann http://localhost:8080/day_052102/ServletDemo in den Browser ein Implementieren Sie ein Beispiel für die Anzeige von „Hallo Welt“ auf der Seite. Die Ergebnisse sind wie folgt.


Methode 2 : Erben Sie die abstrakte Klasse GenericServlet, die ein allgemeines Servlet definiert.

public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
Nach dem Login kopieren

Das Codebeispiel zur Implementierung von hellWord lautet wie folgt:

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();        
    }

}
Nach dem Login kopieren

Methode 3: Durch Erben der abstrakten HttpServlet-Klasse, die von der GenericServlet-Klasse erbt.

PS: Es gibt keine abstrakten Methoden in der HttpServlet-Klasse. Diese Klasse überschreibt die Service-Methode entsprechend der Anforderung. Ein Teil des Quellcodes lautet wie folgt:

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);
                }
            }
        }
Nach dem Login kopieren

Wenn Sie die Service-Methode in der von Ihnen geschriebenen Klasse überschreiben Der Servlet-Container wird die Anforderung von der von Ihnen überschriebenen Dienstmethode verarbeiten.

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


Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das Servlet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage