ナビゲーションをスキップ

WebLogic HTTP サーブレット プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

プログラミングの概要

以下の節では、基本的な HTTP サーブレットのプログラミングについて説明します。

 


単純な HTTP サーブレットの記述

この節では、Hello World というメッセージを出力する単純な HTTP サーブレットを記述する手順について説明します。これらの手順を示すサンプル コード (HelloWorldServlet) の全文をこの節の最後に示します。JDBC、RMI、JMS など各種の J2EE および WebLogic Server サービスをサーブレットで使用する方法の詳細については、このマニュアルで後述します。

  1. 以下の適切なパッケージおよびクラスをインポートします。
  2. import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
  3. javax.servlet.http.HttpServlet を拡張します。 次に例を示します。
  4. public class HelloWorldServlet extends HttpServlet{
  5. service() メソッドを実装します。
  6. サーブレットの主要な機能は、Web ブラウザからの HTTP リクエストを受け取って、HTTP 応答を返すことです。この処理は、サーブレットの service() メソッドによって行われます。サービス メソッドには、出力を生成する応答オブジェクトと、クライアントからのデータを受け取るリクエスト オブジェクトがあります。

    これ以外にも、doPost() メソッドや doGet() メソッドを実装したサーブレットのサンプルを見たことがあるかもしれません。これらのメソッドは、POST または GET リクエストにのみ応答するものです。service() メソッドを実装しておけば、1 つのメソッドですべての種類のリクエストを処理できます (ただし、service() メソッドを実装した場合、このメソッドの最初で super.service() を呼び出さない限り、doPost() メソッドや doGet() メソッドを実装することはできません)。HTTP サーブレットの仕様ではこれ以外に、他のリクエスト タイプの処理に使用されるメソッドも解説していますが、全部をまとめて、サービス メソッドと総称しています。

    サービス メソッドはすべて、同じパラメータ引数を取ります。HttpServletRequest はリクエストに関する情報を提供し、HttpServletResponse は HTTP クライアントに応答する際にサーブレットによって使用されます。サービス メソッドは次のようになります。

    public void service(HttpServletRequest req,
    HttpServletResponse res) throws IOException
    {
  7. 次のように、コンテンツ タイプを設定します。
  8. res.setContentType("text/html");
  9. 次のように、出力に使用する java.io.PrintWriter オブジェクトへの参照を取得します。
  10. PrintWriter out = res.getWriter();
  11. 次の例に示すように、PrintWriter オブジェクトの println() メソッドを使用して HTML を生成します。
  12. out.println("<html><head><title>Hello World!</title></head>");
    out.println("<body><h1>Hello World!</h1></body></html>");
    }
    }
  13. サーブレットを次のようにコンパイルします。
    1. クラスパスとパスを正しく指定して、開発環境シェルを設定します。
    2. サーブレットの Java ソース コードが格納されているディレクトリから、サーブレットが格納されている Web アプリケーションの WEB-INF/classes ディレクトリに、サーブレットをコンパイルします。次に例を示します。
    3. javac -d /myWebApplication/WEB-INF/classes myServlet.java
  14. WebLogic Server にホストが配置される Web アプリケーションの一部として、サーブレットをデプロイします。サーブレットのデプロイメントの概要については、「管理とコンフィグレーション」を参照してください。
  15. ブラウザからサーブレットを呼び出します。
  16. サーブレットの呼び出しに使用する URL は、(a) そのサーブレットが含まれる Web アプリケーション名、(b) Web アプリケーションのデプロイメント記述子にマップされるサーブレット名によって決まります。リクエスト パラメータも、サーブレットを呼び出す URL に含まれることがあります。

    一般的には、サーブレットの URL は以下のパターンに従います。

    http://host:port/webApplicationName/mappedServletName?parameter

    URL の各要素は次のように定義します。

    たとえば、examplesWebApp にデプロイされ、使用中のマシンで動作している WebLogic Server から提供される HelloWorldServlet (このマニュアルで使われているサンプル) を Web ブラウザで呼び出す場合、次のような URL を入力します。

    http://localhost:7001/examplesWebApp/HelloWorldServlet

    URL の host:port 部分は、WebLogic Sever にマップされている DNS 名に置き換えることもできます。

 


高度な機能

上記の手順で、基本的なサーブレットが作成できます。サーブレットでは、さらに高度な機能を使用することもできます。

 


HelloWorldServlet サンプルの全文

この節では、前述の手順で使用した Java ソース コード サンプルの全文を示します。このサンプルは HTTP リクエストに応答する簡単なサーブレットです。このマニュアルの後半では、このサンプルを拡張することにより、HTTP パラメータ、クッキー、およびセッション トラッキングの使い方を説明します。

コード リスト 2-1 HelloWorldServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest req,
HttpServletResponse res)
throws IOException
{
// 初めにコンテンツ タイプを設定する必要がある
res.setContentType("text/html");
// ここで HTML を挿入するために PrintWriter を取得する
PrintWriter out = res.getWriter();
    out.println("<html><head><title>" +
"Hello World!</title></head>");
out.println("<body><h1>Hello World!</h1></body></html>");
}
}

WebLogic Server 配布キットの samples/examples/servlets ディレクトリに、このソース コードと、このマニュアルで扱っている全サンプルをコンパイルして実行するための手順説明があります。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次