Heim  >  Artikel  >  Java  >  Was ist das Servlet-Konzept?

Was ist das Servlet-Konzept?

藏色散人
藏色散人Original
2019-05-11 13:16:136564Durchsuche

Servlet (Server Applet) ist die Abkürzung für „Java Servlet“. Es handelt sich um ein in Java geschriebenes serverseitiges Programm Die Hauptfunktion besteht darin, Daten interaktiv zu durchsuchen und zu generieren, um dynamische Webinhalte zu generieren.

Was ist das Servlet-Konzept?

Servlet im engeren Sinne bezieht sich auf eine von der Java-Sprache implementierte Schnittstelle. Servlet im weiteren Sinne bezieht sich auf jede Klasse, die diese Servlet-Schnittstelle implementiert Servlet als Letzteres. Servlets werden auf Java-fähigen Anwendungsservern ausgeführt. Im Prinzip können Servlets auf jede Art von Anfrage antworten, in den meisten Fällen werden Servlets jedoch nur zur Erweiterung von Webservern auf Basis des HTTP-Protokolls verwendet.

Der erste, der den Servlet-Standard unterstützte, war der Java-Webserver von JavaSoft. Seitdem haben einige andere Java-basierte Webserver damit begonnen, Standard-Servlets zu unterstützen.

Der Lebenszyklus des Servlets

Der Lebenszyklus des Servlets wird durch den Servlet-Container gesteuert. Er ist hauptsächlich in drei Phasen unterteilt: Initialisierung, Ausführung und Zerstörung Der Servlet-Container lädt das Servlet. Rufen Sie nach der Instanziierung die Methode init () zur Initialisierung auf, führen Sie die Methode service () aus, wenn die Anforderung eintrifft, rufen Sie die Doget- oder Dopost-Methode entsprechend der entsprechenden Anforderung auf und rufen Sie beim Server die Methode destroy () auf beschließt, die Instanz zu zerstören (die vom Servlet belegten Ressourcen freizugeben: Datenbankverbindung schließen, Dateieingabe- und -ausgabestream schließen). Während des gesamten Lebenszyklus erfolgt die Initialisierung und Zerstörung des Servlets nur einmal und die Anzahl der Wie oft die Servicemethode ausgeführt wird, hängt davon ab, wie oft der Client auf das Servlet zugreift.

Eigenschaften von Servlet

Servlet ist eine einzelne Instanz mit mehreren Threads. Es erstellt nur ein Servlet-Objekt, aber jede Anfrage startet einen Thread und speichert ihn in einem eigenen Thread-Stack-Speicher. Führen Sie die Dienstmethode aus.

Eine Servlet-Instanz führt den parameterlosen Konstruktor und die init()-Methode nur einmal aus, und zwar beim ersten Zugriff.

Jedes Mal, wenn der Benutzer eine Anfrage für das aktuelle Servlet sendet, wird die service()-Methode ausgeführt.

Eine Servlet-Instanz führt die destroy()-Methode nur einmal aus, wenn die Anwendung stoppt.

Da es sich bei Servlet um eine einzelne Instanz und mehrere Threads handelt, wird zur Gewährleistung der Thread-Sicherheit im Allgemeinen nicht empfohlen, veränderbare Mitgliedsvariablen in der Servlet-Klasse zu definieren, da jeder Thread diese Mitgliedsvariable, den Thread, ändern kann Es werden Sicherheitsprobleme auftreten.

Standardmäßig wird Servlet nicht instanziiert, wenn der Webcontainer startet.

package com.ntqn.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class IndexServlet
 */
@WebServlet("/IndexServlet.php")
public class IndexServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    /**
     * Default constructor. 
     */
    public IndexServlet() {
        // TODO Auto-generated constructor stub
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("<h1>Hello,Sevlet</h1>");
    }
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}

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

Stellungnahme:
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