サーブレットパッケージ


WEB-INF サブディレクトリを含む Web アプリケーション構造は、すべての Java Web アプリケーションの標準であり、サーブレット 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 をコンパイルします。他のライブラリの場合は、CLASSPATH でそれらの JAR ファイルも参照する必要があります。 Hello World プログラムでは他のライブラリを使用していないため、ここでは servlet-api.jar JAR ファイルのみを参照します。

このコマンド ラインは、Sun Microsystems Java Software Development Kit (JDK、正式名: Java Software Development Kit) に付属する組み込み javac コンパイラを使用します。 Microsystems の Java ソフトウェア開発キット (JDK)。このコマンドが正しく機能するには、使用している Java SDK の場所を PATH 環境変数に含める必要があります。

すべてがうまくいけば、上記のコンパイルにより同じディレクトリに

MyServlet.class

ファイルが生成されます。次のセクションでは、コンパイルされたサーブレットを実稼働環境にデプロイする方法について説明します。 サーブレットのパッケージ化と展開

デフォルトでは、サーブレット アプリケーションはパス <Tomcat のインストール ディレクトリ>/webapps/ROOT に配置され、クラス ファイルは <Tomcat のインストール ディレクトリ>/webapps/ に配置されます。 ROOT/WEB - INF/クラス内。

完全修飾クラス名

com.myorg.MyServlet

がある場合、このサーブレット クラスは WEB-INF/classes/com/myorg/MyServlet.class に配置する必要があり、<Tomcat に配置する必要があります。 -インストール- ディレクトリ>/webapps/ROOT/WEB-INF/のweb.xmlファイルに次のエントリを作成します:

$ javac MyServlet.java
上記のエントリは、<web-app>のweb.xmlファイルに作成されます。 ..</web -app> タグ。このファイルにはすでにさまざまなエントリが含まれている可能性がありますが、心配する必要はありません。

この時点で、基本的には完了です。次に、<Tomcat-installation-directory>binstartup.bat (Windows の場合) または <Tomcat-installation-directory>/bin/startup.sh (Linux /Solaris の場合) を使用しましょう。など) Tomcat サーバーを起動し、最後にブラウザのアドレス バーに

http://localhost:8080/MyServlet

と入力します。すべてがうまくいけば、以下の結果が表示されます:

Hello World