サーブレット-パッケージング

WEB-INFサブディレクトリを含むWebアプリケーション構造は、すべてのJava Webアプリケーションに標準であり、サーブレットAPI仕様で指定されています。myappの最上位ディレクトリ名を指定します。このディレクトリ構造は次のようになります-

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

WEB-INFサブディレクトリには、web.xmlという名前のアプリケーションのデプロイメント記述子が含まれています。すべてのHTMLファイルは、myappである最上位ディレクトリに保持する必要があります。管理者ユーザーの場合、親ディレクトリとしてROOTディレクトリが見つかります。

パッケージでのサーブレットの作成

WEB-INF / classesディレクトリには、すべてのサーブレットクラスとその他のクラスファイルが、パッケージ名と一致する構造で含まれています。たとえば、完全修飾クラス名がある場合com.myorg.MyServlet、このサーブレットクラスは次のディレクトリに配置する必要があります-

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

以下は、パッケージ名com.myorgでMyServletクラスを作成する例です。

// Name your package
package com.myorg;  

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
   private String message;
 
   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }
 
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

パッケージ内のサーブレットのコンパイル

パッケージで利用可能なクラスをコンパイルすることに大きな違いはありません。最も簡単な方法は、Javaファイルを完全修飾パスに保持することです。前述のように、クラスはcom.myorgに保持されます。また、このディレクトリをCLASSPATHに追加する必要があります。

環境が適切に設定されていると仮定して、 <Tomcat-installationdirectory>/ webapps / ROOT / WEB-INF / classesディレクトリを作成し、MyServlet.javaを次のようにコンパイルします

$ javac MyServlet.java

サーブレットが他のライブラリに依存している場合は、それらのJARファイルもCLASSPATHに含める必要があります。Hello Worldプログラムで他のライブラリを使用していないため、servlet-api.jarJARファイルのみを含めました。

このコマンドラインは、Sun Microsystems Java Software Development Kit(JDK)に付属の組み込みjavacコンパイラを使用します。このコマンドを正しく機能させるには、使用しているJavaSDKの場所をPATH環境変数に含める必要があります。

すべてがうまくいけば、上記のコンパイルは MyServlet.class同じディレクトリ内のファイル。次のセクションでは、コンパイルされたサーブレットを本番環境にデプロイする方法について説明します。

パッケージ化されたサーブレットの展開

デフォルトでは、サーブレットアプリケーションはパス<Tomcat-installationdirectory> / webapps / ROOTにあり、クラスファイルは<Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classesにあります。

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

<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-installationdirectory> \ bin \ startup.bat(Windowsの場合)または<Tomcat-installationdirectory> /bin/startup.sh(Linux / Solarisなどの場合)を使用してTomcatサーバーを起動し、最後に次のように入力します。 http://localhost:8080/MyServletブラウザのアドレスボックスにあります。すべてがうまくいけば、次の結果が得られます-

Hello World