基本パッケージ

広告

サーブレットを作成する上で必要となるクラスが含まれているパッケージについて簡単に見ていきます。大きくわけて2つのパッケージが用意されており、「javax.servlet」パッケージと「javax.servlet.http」パッケージとなります。

全てのサーブレットは「javax.servlet」パッケージに含まれる「Servlet」インターフェースを実装する必要があります。このインターフェースを実装しているのが「GenericServlet」クラスと「HttpServlet」クラスです。その為、通常はこのどちらかのクラスを継承してクラスを作成します。

「GenericServlet」クラスはプロトコルに依存しないサーブレットを作成する場合に利用します。「HttpServlet」クラス自体も「GenericServlet」クラスのサブクラスですがHTTP通信を行うサーブレットを作成するのみ便利なように拡張されたクラスとなっています。今後はHTTP通信を行うサーブレットを中心に利用方法を確認していきますので、基本的には「HttpServlet」クラスを継承して作成するようにします。

ではそれぞれのパッケージに含まれるインターフェースやクラスの一覧を見ておきます。

javax.servletパッケージ:

インターフェース
  Filter
  FilterChain
  FilterConfig
  RequestDispatcher
  Servlet
  ServletConfig
  ServletContext
  ServletContextAttributeListener
  ServletContextListener
  ServletRequest
  ServletRequestAttributeListener
  ServletRequestListener
  ServletResponse
  SingleThreadModel

クラス
  GenericServlet
  ServletContextAttributeEvent
  ServletContextEvent
  ServletInputStream
  ServletOutputStream
  ServletRequestAttributeEvent
  ServletRequestEvent
  ServletRequestWrapper
  ServletResponseWrapper

Exceptions
  ServletException
  UnavailableException

この中でサーブレットが呼び出される前や後に処理を行うフィルタの機能を行うのが「Filter」インターフェースです。フィルタについては別のページで詳しく見ていきます。

javax.servlet.httpパッケージ:

インターフェース
  HttpServletRequest
  HttpServletResponse
  HttpSession
  HttpSessionActivationListener
  HttpSessionAttributeListener
  HttpSessionBindingListener
  HttpSessionContext
  HttpSessionListener

クラス
  Cookie
  HttpServlet
  HttpServletRequestWrapper
  HttpServletResponseWrapper
  HttpSessionBindingEvent
  HttpSessionEvent
  HttpUtil

この中でサーブレットを作成する上で継承して利用するクラスが「HttpServlet」クラスとなります。「HttpServlet」クラスで用意されている様々なメソッドを定義していくことでサーブレットを作成していきます。

またサーブレットがクライアントであるブラウザなどから呼ばれた時にパラメータなどの情報が含まれているのが「HttpServletRequest」インターフェースのオブジェクトです。そしてサーブレットからクライアントに出力を行う場合に利用するのが「HttpServletResponse」インターフェースのオブジェクトです。これらは「HttpServlet」クラスの中で定義されているメソッドの引数として渡されてきます。

他にクッキーを扱う「Cookie」クラス、セッションを扱う「HttpSession」インターフェースなどがあります。これらは別のページでそれぞれ詳しく見ていきます。

では次のページで「HttpServlet」クラスから詳しく見ていきましょう。

( Written by Tatsuo Ikura )