서블릿 패키지


WEB-INF 하위 디렉터리와 관련된 웹 애플리케이션 구조는 모든 Java 웹 애플리케이션의 표준이며 Servlet API 사양에 의해 지정됩니다. myapp이라는 최상위 디렉토리가 있는 경우 디렉토리 구조는 다음과 같습니다.

/myapp
    /images
    /WEB-INF
        /classes
        /lib

WEB-INF 하위 디렉토리에는 web.xml이라는 애플리케이션의 배포 설명자가 포함되어 있습니다. 모든 HTML 파일은 최상위 디렉토리 myapp에 있습니다. 관리자의 경우 ROOT 디렉터리가 myApp의 상위 디렉터리임을 알 수 있습니다.

패키지에서 서블릿 생성

WEB-INF/classes 디렉토리에는 모든 서블릿 클래스와 기타 클래스 파일이 포함되어 있습니다. 클래스 파일의 디렉토리 구조는 해당 패키지 이름과 일치합니다. 예를 들어, com.myorg.MyServlet이라는 정규화된 클래스 이름이 있는 경우 이 서블릿 클래스는 다음 디렉터리에 있어야 합니다.

/myapp/WEB-INF/classes/com/myorg/MyServlet.class

다음 예에서는 <라는 이름의 패키지를 만듭니다. 🎜> com.myorg의 MyServlet 클래스입니다.

// 为包命名
package com.myorg;  

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
  private String message;
 
  public void init() throws ServletException
  {
      // 执行必需的的初始化
      message = "Hello World";
  }
 
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");
 
      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}

패키지 내 서블릿 컴파일

패키지 내 클래스를 컴파일하는 방법은 다른 클래스를 컴파일하는 방법과 크게 다르지 않습니다. 가장 쉬운 방법은 위에서 언급한 클래스와 같이 완전한 경로로 Java 파일을 com.myorg에 보관하는 것입니다. 또한 CLASSPATH에 디렉터리를 추가해야 합니다.

환경이 올바르게 설정되었다고 가정하고

<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 디렉토리로 이동하여 아래와 같이 MyServlet.java를 컴파일합니다. :

$ javac MyServlet.java

서블릿이 다른 라이브러리에 의존하는 경우 CLASSPATH에서 해당 JAR 파일도 참조해야 합니다. 여기서는 Hello World 프로그램에서 다른 라이브러리를 사용하지 않기 때문에 servlet-api.jar JAR 파일만 참조합니다.

이 명령줄은 Sun Microsystems Java 소프트웨어 개발 키트(JDK, 전체 이름: Java 소프트웨어 개발 키트)와 함께 제공되는 내장 javac 컴파일러를 사용합니다. 마이크로시스템즈의 자바 소프트웨어 개발 키트(JDK). 이 명령이 올바르게 작동하려면 PATH 환경 변수에 사용 중인 Java SDK의 위치를 ​​포함해야 합니다.

모든 것이 순조롭게 진행된다면 위의 컴파일은 동일한 디렉토리에

MyServlet.class 파일을 생성합니다. 다음 섹션에서는 컴파일된 서블릿을 프로덕션에 배포하는 방법을 설명합니다.

서블릿 패키징 및 배포

기본적으로 서블릿 애플리케이션은 <Tomcat-installation-directory>/webapps/ROOT 경로에 위치하며, 클래스 파일은 <Tomcat에 위치합니다. -설치 디렉토리> ;/webapps/ROOT/WEB-INF/classes.

정규화된 클래스 이름

com.myorg.MyServlet이 있는 경우 이 서블릿 클래스는 WEB-INF/classes/com/myorg/MyServlet.class에 있어야 합니다. <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/에 있는 web.xml 파일에 다음 항목을 생성합니다.

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.myorg.MyServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>

위 항목은 web.xml 파일에 생성됩니다< ;web-app>...</web-app> 이 파일에는 이미 다양한 항목이 있을 수 있지만 상관하지 마세요.

이제 기본적으로 완료되었습니다. 이제 <Tomcat-installation-directory>binstartup.bat(Windows의 경우) 또는 <Tomcat-installation-directory>/bin/startup.sh( Linux/Solaris 등) Tomcat 서버를 시작하고 마지막으로 브라우저 주소 표시줄에

http://localhost:8080/MyServlet을 입력합니다. 모든 것이 잘 진행되면 다음과 같은 결과가 표시됩니다.

Hello World