client_types.xml ファイル
client_types.xml ファイルは、 PageListServlet を拡張するサーブレットに対し、クライアント・タイプの検出をサポートします。 サーブレットは、client_types.xml ファイル内の構成データを使用して、 呼び出し側クライアントが応答に必要な言語のタイプを判別できます。
クライアント・タイプ検出サポートを使用すると、サーブレットは callPage メソッドを使用して、 該当する JavaServer Pages (JSP) ファイルを呼び出せるようになります。 サーブレットは、要求のマークアップ言語のタイプに基づいて JSP ファイルを選択します。
サーブレットは、callPage メソッドの次のバージョンを使用して、 クライアントが必要とするマークアップ言語のタイプを判別する必要があります。
callPage(String mlName, String pageName, HttpServletRequest request,
HttpServletResponse response)
ここで、引数は以下のとおりです。
- mlName - マークアップ言語のタイプ
- pageName - PageListServlet 構成で定義されたページ名
- request - HttpServletRequest オブジェクト
- response - HttpServletResponse オブジェクト
『PageListServlet の拡張』の項にある PageListServlet の拡張の コード例を参照して、サーブレットが callPage メソッドを呼び出す方法を調べます。
この例では、PageListServlet によって提供されるクライアント・タイプ検出メソッドの getMLTypeFromRequest(HttpServletRequestrequest) は、 HttpServletRequest オブジェクトの要求ヘッダーを検査し、 client_types.xml ファイル内に一致するものがないか検索します。
クライアント・タイプ検出メソッドは以下を行います。
- 入力 HttpServletRequest および client_types.xml ファイルを用いて、 一致する HTTP 要求の名前と値がないかをチェックする。
- 一致するものが 1 つ見つかると、 <client-type> エレメント用に構成されたマークアップ言語の値を戻します。
- 一致するものが複数見つかると、このメソッドは、最初に見つかった一致項目の <client-type> エレメント用のマークアップ言語を戻します。
- 一致するものが見つからない場合には、このメソッドは PageListServlet 構成に定義されているデフォルトのページ用のマークアップ言語の値を戻します。
ロケーション
client_types.xml ファイルは install_root/properties ディレクトリーにあります。
使用上の注意
以下の使用上の質問に対する回答を検討してください。
- このファイルは読み取り専用ですか?
いいえ
- このファイルは製品コンポーネントによって更新されますか?
いいえ
- 更新される場合、その更新のきっかけとなるものは何ですか?
このファイルは、ユーザーによって作成され、更新されます。
- このファイルの内容は、いつ、どのように使用されますか?
PageListServlet サーブレットを拡張するサーブレットは、 このファイルを使用して、呼び出し側クライアントが応答に必要とする言語のタイプを判別します。
サンプル・ファイル・エントリー
<?xml version="1.0" >
<!DOCTYPE clients [
<!ELEMENT client-type (description, markup-language,request-header+)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT markup-language (#PCDATA)>
<!ELEMENT request-header (name, value)>
<!ELEMENT clients (client-type+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT value (#PCDATA)>]>
<clients>
<client-type>
<description>IBM Speech Client</description>
<markup-language>VXML</markup-language>
<request-header>
<name>user-agent</name>
<value>IBM VoiceXML pre-release version 000303</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vxml</value>
</request-header>
</client-type>
<client-type>
<description>WML Browser</description>
<markup-language>WML</markup-language>
<request-header>
<name>accept</name>
<value>text/x-wap.wml</value>
</request-header>
<request-header>
<name>accept</name>
<value>text/vnd.wap.xml</value>
</request-header>
</client-type>
</clients>