Java Servlet은 Java 기술을 기반으로 하는 웹 구성 요소로, 서버 측에서 실행되며 Servlet 컨테이너에 의해 관리됩니다. 서블릿은 플랫폼 독립적인 Java 클래스입니다. 서블릿을 작성하는 것은 실제로 서블릿 사양에 따라 Java 클래스를 작성하는 것입니다.
서블릿 작업에는 실행 환경, 즉 서블릿 컨테이너가 필요합니다. 여기서는 Tomacat을 사용합니다. 웹 서버로서 Tomcat은 HTML 페이지를 처리하는 기능 외에도 서블릿 및 JSP 컨테이너이기도 합니다.
helloWord 예제를 구현하세요.
추천 과정: Java 튜토리얼.
방법 1: Servlet 인터페이스를 구현하여 Servlet 클래스를 작성하려면 인터페이스에 정의된 5가지 메서드를 구현해야 합니다. 코드는 다음과 같습니다.
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(); } }
그런 다음 web.xml을 구성하면 코드는 다음과 같습니다.
<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>
실행 버튼을 클릭하고 tomacat 서버를 시작한 후 브라우저에 http://localhost:8080/day_052102/ServletDemo를 입력하여 페이지에 hello World를 표시하는 예제를 구현합니다. 결과는 다음과 같습니다.
방법 2: 일반 서블릿을 정의하는 추상 클래스 GenericServlet을 상속받습니다.
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
hellWord를 구현하는 코드 예시는 다음과 같습니다.
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(); } }
방법 3: GenericServlet 클래스를 상속한 추상 HttpServlet 클래스를 상속합니다.
PS: HttpServlet 클래스에는 추상 메서드가 없습니다. 이 클래스는 요청에 따라 doGet 또는 doGet 메서드를 호출합니다. 소스 코드의 일부는 다음과 같습니다.
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(); } }
위 내용은 서블릿을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!