サーブレットについて
Webサーバーの機能性を拡張するサーブレットサイドの標準Javaアプリケーショ
ン
- 動的コンテンツの作成
- ミドルウェア ゲートウェイ
- プロトコル サポート(Chat,News,Fileのサーバ)
- アプレットとの直接対話
- 共同コーディネーター
- 検索
- etc ...
- ショッピング カートのメタフォーを使うオンライン コマース
- チャット・サーバーやディスカッション・データベース、サーチ・エンジンなどの複数の異なるマルチユーザー・アプリケーションに対する制御アクセス
- セキュリティー
- セキュリティー情報へのアクセスを含め、サーバー コンテンツ内で呼び出される
- もっと多くの制御を持つバック層への安全な接続がある
- サーブレット(ACL経由)の特権を制御することができる
- 固有のセキュリティー機能を使用することができる
サーブレットは、 Web サーバーのアドレス空間内で実行されるため、Webサーバーのほとんどすべてのセキュリティー・コンテキストを利用できる
- 標準 Java ベースのソリューションを使用して企業とセキュアなセッションを簡単にセットアップできる
- セキュアな Language/VM 環境内で書き込みおよび実行される
- 頑強制
- ディレクトリー、セキュリティー、入出力など、多くの優れたJava APIは、リモート管理インターフェイスを介して保守および管理が用意である
- パフォーマンス
- Webサーバと同じコンテンツの実行
- 要求ありしだい、プリロード、またはロードが可能
- メモリー内で実行し、メモリーに残存する
- HTTP要求(reducing actibility to backend systemsを介して、セッションを保守する)
- マルチスレッド化される
- CGI ベースのアプリケーションは、Perl、Unix-shell スクリプトな
どの解釈プログラム・ベース言語で書かれる傾向がある
- Java VM (ジャストインタイムのコンパイラーと共に) は、スクリプト言語に優れたパフォーマンスを提供している
- 内部プロセスの実行が、プロセスの作成とプロセス間通信のオーバーヘッドを除去する
- 移植性
- サーバー プラグイン(NSAPI,ISAPI,ICAPI etc)のJava置換機能
(NSAPI や GWAPI などのサーバー・プラグイン・ファミリーは、 JavaServerAPI のように標準化されていない)
- 再使用可能なオブジェクト
- Java の一度書くとどこでも実行できる機能は、プラットフォームの独立性を活用し、高性能な再使用可能なオブジェクトの作成を可能にする
- JavaServlet APIには次の2つのパッケージが組み込まれている
- javax.servlet
- javax.servlet.http
- 一般的な"Web"サーブレットは、javax.servlet.http.HttpServletを拡張する
- HttpServletは座標詳細のほとんどを処理する
- データへの簡単なアクセスと着信クライアント要求についての詳細を提供する
- コンテンツをクライアントに簡単に返送することができるようにするメソッドを提供する
- 大部分のサーブレットは、常駐する Web 環境で使用される
- 要求応答プロトコル (HTTP) は、 Web クライアント (ブラウザー) と Web サーバー間で使用される
- この HTTP ベース環境で生成される標準プロセスの多くは、
javax.servlet.http.HttpServlet によって効率的に管理される。 通常サーブレットは、このクラスを拡張し、標準メソッド、 doGet() または doPost() のどちらかを上書きして、サーブレット固有の動作を提供する
- これは、java.applet.Applet を拡張し、 init() または start()、あるいはその両方を上書きするクライアント・サイド・モデルに類似している
- 大部分のサーブレットが実行する定期的タスクとは、クライアント HTTP要求の一部であるパラメーターの "読み込み" と HTTP 応答の一部としてクライアントに戻す結果の"書き込み"である
- クライアントが、サーブレットをURLのパーツとして命名するWebServerの要求を作成する
- WebServerが特定のServletクラスのインスタンスにアクセスする
- WebServerがServletのservice()メソッドを呼び出す
- サーブレットは、クライアントの名前要求時に、それを発行する Web サーバーの Java 仮想計算機 (VM) がいつでも使用できるように設定されている必要がある
- サーブレットは、一度ロードされると、通常、拡張期間中はロード状態になっている。 サーブレットは Web サーバーが開始するときに自動的にロードしたり、クライアントがサービスを最初に要求したときにロードすることがでる
サーブレットは再ロードが可能である。 再ロードは、サーブレットがアンロードするされたり、サーブレットのバイトコードが更新されたときに発生する
- サーブレットをロードすると、サーブレットのinit()メソッドがディスパッチされる
- それぞれのクライアント要求時に、サーブレットのservice()メソッドを呼び出し、Web サーバーが提供するスレッドによって起動される
- サーブレットをアンロードすると、サーブレットのdestroy()メソッドがよびだされ、データベースへのオープン接続などのリソースのクローズを許可する
- service()メソッドにデフォルトの振る舞いを提供する
- 着信GETメソッド要求の場合には、doGet()を呼び出す。特定のメソッドをサーブレットが提供していない場合、エラーコードをクライアントに戻す
- 着信POSTメソッド要求の場合には、doPost()を呼び出す。特定のメソッドをサーブレットが提供していない場合、エラーコードをクライアントに戻す
- service()めそっど、doGet()メソッド、doPost()メソッドにはそれぞれ次の2つのパラメーターがある
- - HttpServletRequest:
HttpSession情報などの要求データ(パラメーター)へのアクセスを提供する
- - HttpServletResponse:
サーブレットが要求しているクライアントに対して応答できるようにする
- クライアントの要求の表示
- 要求などの局面の"取得者"
- ヘッダー、コンテンツ タイプ、長さ、メソッドなどの要求
- URLを文字列として要求
- サーブレット"パス"
- クライアント セキュリティー タイプ
- 要求パラメータ(名前による)へのアクセス
- バイナリー データの入力ストリームを入手
- セッション オブジェクトのためのハンドルを入手
戻る