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