Heim >Java >javaLernprogramm >So konfigurieren Sie das Servlet
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.
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(); } }
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>
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
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(); } }
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); } } }
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(); } }
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!