クラス FacesServlet
- java.lang.ObjectSE
-
- jakarta.faces.webapp.FacesServlet
- 実装されているすべてのインターフェース:
Servlet
public final class FacesServlet extends ObjectSE implements Servlet
FacesServlet は、Jakarta Faces を利用してユーザーインターフェースを構築する Web アプリケーションのリクエスト処理ライフサイクルを管理する Jakarta Servlet サーブレットです。
アプリケーションが Jakarta Servlet 3.0(およびそれ以降)コンテナーで実行されている場合、ランタイムは、
HandlesTypesアノテーションで以下のクラスを宣言するServletContainerInitializerインターフェースの実装を提供する必要があります。FacesConfigResourceDependenciesResourceDependency- jakarta.faces.bean.ManagedBean
FacesComponentUIComponentConverterFacesConverterListenerForListenersForFacesBehaviorRendererRendererFacesValidatorValidator
この Jakarta Servlet サーブレットは、
web.xmlまたはweb-fragment.xmlで明示的にマップされておらず、以下の 1 つ以上の条件に該当する場合、自動的にマップする必要があります。faces-config.xmlファイルはWEB-INFにありますfaces-config.xmlファイルは、アプリケーションのクラスパスの jar のMETA-INFディレクトリにあります。.faces-config.xmlで終わるファイル名は、アプリケーションのクラスパスの jar のMETA-INFディレクトリにあります。jakarta.faces.CONFIG_FILESコンテキストパラメーターはweb.xmlまたはweb-fragment.xmlで宣言されています。ServletContainerInitializer実装のonStartup()メソッドに渡されたクラスのSetは空ではありません。
ランタイムがサーブレットを自動的にマップする必要があると判断した場合は、サーブレットを次の <
url-pattern> エントリにマップする必要があります。- /faces/*
- *.jsf
- *.faces
- *.xhtml
*.xhtmlへの自動マッピングは、コンテキストパラメーターDISABLE_FACESSERVLET_TO_XHTML_PARAM_NAMEで無効にできることに注意してください。このクラスには
jakarta.servlet.annotation.MultipartConfigアノテーションを付ける必要があります。これにより、Jakarta Faces 実装が実行されている Jakarta Servlet コンテナーがマルチパートフォームデータを正しく処理します。このクラスに関連するセキュリティの考慮事項
Web アプリケーションのセキュリティのトピックは横断的な関心事であり、仕様のあらゆる側面がそれに対処します。ただし、他のフレームワークと同様に、アプリケーション開発者はセキュリティに細心の注意を払う必要があります。アプリケーションの残りのセキュリティ問題の中でこれらのトピックを検討してください。これは決してセキュリティ上の関心事の完全なリストではなく、徹底的なアプリケーションレベルのセキュリティレビューの代わりにはなりません。
プレフィックスマッピングと
FacesServletFacesServletが<url-pattern>/faces/*</url-pattern>などの接頭辞<url-pattern>を使用してマップされている場合、FacesServletによって最初に処理されることなくビューソースへのアクセスを防ぐために何かを行う必要があります。一般的なアプローチの 1 つは、<security-constraint> をすべての facelet ファイルとフロー定義ファイルに適用することです。<security-constraint> の使用の詳細については、Jakarta Servlet Specification のデプロイメント記述子の章を参照してください。許容される HTTP メソッド
Jakarta Faces Specification では、GET および POST http メソッドのみを使用する必要があります。Web アプリケーションが PUT や DELETE などの他の http メソッドを必要としない場合は、<http-method> 要素と <http-method-omission> 要素を使用して、許可される http メソッドを制限することを検討してください。これらの要素の使用に関する詳細については、Jakarta Servlet Specification のセキュリティセクションを参照してください。
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringSEAUTOMATIC_EXTENSIONLESS_MAPPING_PARAM_NAMEFacesServletから拡張機能のないバリアント (*.xhtmlなし) への自動マッピングを有効にする必要があるかどうかを通知するために、ランタイムが参照するServletContext初期パラメーター。static StringSECONFIG_FILES_ATTRJakarta Faces 構成情報を含む、コンテキスト相対リソースパスのコンマ区切りリストのコンテキスト初期化パラメーター名(存在する場合は自動的にロードされる/WEB-INF/faces-config.xmlに加えて)。static StringSEDISABLE_FACESSERVLET_TO_XHTML_PARAM_NAMEFacesServletの拡張*.xhtmlへの自動マッピングを無効にする必要があるかどうかをランタイムが確認するServletContextinit パラメーター。static StringSELIFECYCLE_ID_ATTR使用するLifecycleインスタンスのライフサイクル識別子のコンテキスト初期化パラメーター名。
コンストラクターの概要
コンストラクター コンストラクター 説明 FacesServlet()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voiddestroy()起動時に取得したすべてのリソースを解放します。ServletConfiggetServletConfig()このサーブレットのServletConfigインスタンスを返します。StringSEgetServletInfo()このサーブレットに関する情報を返します。voidinit(ServletConfig servletConfig)必要なファクトリインスタンスを取得します。voidservice(ServletRequest req, ServletResponse resp)受信リクエストを処理し、以下の仕様に従って対応するレスポンスを作成します。
フィールドの詳細
CONFIG_FILES_ATTR
public static final StringSE CONFIG_FILES_ATTR
Jakarta Faces 構成情報を含む、コンテキスト相対リソースパスのコンマ区切りリストのコンテキスト初期化パラメーター名(存在する場合は自動的にロードされる
/WEB-INF/faces-config.xmlに加えて)。- 関連事項:
- 定数フィールド値
LIFECYCLE_ID_ATTR
public static final StringSE LIFECYCLE_ID_ATTR
使用する
Lifecycleインスタンスのライフサイクル識別子のコンテキスト初期化パラメーター名。- 関連事項:
- 定数フィールド値
DISABLE_FACESSERVLET_TO_XHTML_PARAM_NAME
public static final StringSE DISABLE_FACESSERVLET_TO_XHTML_PARAM_NAME
FacesServletの拡張*.xhtmlへの自動マッピングを無効にする必要があるかどうかをランタイムが確認するServletContextinit パラメーター。このパラメーターの値がtrueと大文字小文字を区別せずに等しい場合にのみ、実装はこの自動マッピングを無効にする必要があります。このパラメーターが指定されていない場合、この自動マッピングは上記のように有効になります。
- 関連事項:
- 定数フィールド値
AUTOMATIC_EXTENSIONLESS_MAPPING_PARAM_NAME
public static final StringSE AUTOMATIC_EXTENSIONLESS_MAPPING_PARAM_NAME
FacesServletから拡張機能のないバリアント (*.xhtmlなし) への自動マッピングを有効にする必要があるかどうかを通知するために、ランタイムが参照するServletContext初期パラメーター。実装では、このパラメーターの値が大文字と小文字を区別せずにtrueと等しい場合にのみ、この自動マッピングを有効にする必要があります。このパラメーターが指定されていない場合、この自動マッピングは有効になりません。
- 関連事項:
- 定数フィールド値
メソッドの詳細
init
public void init(ServletConfig servletConfig) throws ServletException
必要なファクトリインスタンスを取得します。
- 次で指定:
- インターフェース
Servletのinit - パラメーター:
servletConfig- サーブレットの構成および初期化パラメーターを含むServletConfigオブジェクト- 例外:
ServletException- 何らかの理由で、この Faces アプリケーションの起動が失敗した場合。これには、このinit()メソッドの処理前または処理中に解析される構成ファイルのエラーが含まれます。- 関連事項:
UnavailableException,Servlet.getServletConfig()
service
public void service(ServletRequest req, ServletResponse resp) throws IOExceptionSE, ServletException
受信リクエストを処理し、以下の仕様に従って対応するレスポンスを作成します。
このメソッドの
requestおよびresponse引数がそれぞれHttpServletRequestおよびHttpServletResponseのインスタンスでない場合、このメソッドを呼び出した結果は未定義です。このメソッドは、レスポンス引数(
HttpServletResponseにキャスト)でsendErrorメソッドを呼び出し、コードHttpServletResponse.SC_NOT_FOUNDを引数として渡すことにより、次の文字列を含むリクエストにレスポンスする必要があります。/WEB-INF/ /WEB-INF /META-INF/ /META-INFこのメソッドの仕様で前述したいずれのケースもこのリクエストのサービスに適用されない場合、リクエストを処理するには次のアクションを実行する必要があります。
このリクエストの
FacesContextインスタンスを取得します。Application.getResourceHandler()を呼び出して、このリクエストのResourceHandlerを取得します。ResourceHandler.isResourceRequest(jakarta.faces.context.FacesContext)を呼び出します。これがtrueを返す場合、ResourceHandler.handleResourceRequest(jakarta.faces.context.FacesContext)を呼び出します。これがfalseを返す場合は、Lifecycle.attachWindow(jakarta.faces.context.FacesContext)、Lifecycle.execute(jakarta.faces.context.FacesContext)、Lifecycle.render(jakarta.faces.context.FacesContext)の順に呼び出します。どちらの場合もFacesExceptionがスローされた場合は、FacesExceptionから原因を抽出します。原因がnullの場合は、FacesExceptionからメッセージを抽出し、それを新しいServletExceptionインスタンスの内部に置き、FacesExceptionインスタンスを根本原因として渡してから、ServletExceptionインスタンスを再スローします。原因がServletExceptionのインスタンスである場合、原因を再スローします。原因がIOExceptionのインスタンスである場合、原因を再スローします。それ以外の場合は、新しいServletExceptionインスタンスを作成し、最初の引数として原因からのメッセージを渡し、2 番目の引数として原因自体を渡します。実装では、
FacesContext.release()がこのリクエストの Jakarta Faces 関連部分の処理で可能な限り遅く、finally ブロック内で呼び出されるようにする必要があります。- 次で指定:
- インターフェース
Servletのservice - パラメーター:
req- 処理中の Jakarta Servlet リクエストresp- 作成している Jakarta Servlet レスポンス- 例外:
IOExceptionSE- 処理中に入出力エラーが発生した場合ServletException- 処理中に Jakarta Servlet エラーが発生した場合
getServletConfig
public ServletConfig getServletConfig()
このサーブレットの
ServletConfigインスタンスを返します。- 次で指定:
- インターフェース
ServletのgetServletConfig - 戻り値:
- このサーブレットを初期化する
ServletConfigオブジェクト - 関連事項:
Servlet.init(jakarta.servlet.ServletConfig)
getServletInfo
public StringSE getServletInfo()
このサーブレットに関する情報を返します。
- 次で指定:
- インターフェース
ServletのgetServletInfo - 戻り値:
- サーブレット情報を含む
String