> Java > java지도 시간 > 본문

서블릿을 구성하는 방법

(*-*)浩
풀어 주다: 2019-05-16 17:03:02
원래의
9760명이 탐색했습니다.


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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿