javax.faces.webapp.FacesServlet
Servlet
インターフェイスを実装するクラスです。アプリケーションで認識されるようにするには、web.xml に .xml として追加する必要があります<servlet>
。これは基本的に次の構成で行われます。
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
これで、 Faces サーブレット名を使用して web.xml ファイルでこのクラスを参照できます。次に行うことは、このサーブレットによって処理される URL を定義することです。これは、次の構成で行われます。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
したがって、 jsfサフィックスで終わるこのアプリケーション サーバーへの GET または POST 要求は、Faces サーブレットによって処理されます。サーブレット マッピングには他の URL パターンを使用できます。これについては、こちらで詳しく説明しています: JSF Facelets: URL が .jsf である場合もあれば、.xhtml である場合もあります。なんで?
アプリを別のサーバーにデプロイしようとすると、何か問題が発生しますか? JBoss や Websphere が好きですか?
アプリケーション サーバーが Java EE 5 準拠のサーバーである場合、JSF 1.2 形式の Mojarra 実装を使用して、このサーブレットにアクセスできます。Java EE 6 準拠のサーバーの場合、これは JSF 2.x の Mojarra 実装になります (正確なバージョンを知るには、アプリケーション サーバーのメモを確認してください)。現在、GlassFish 4 では、JSF 2.2 用の Mojarra を取得します。
アプリケーション サーバーが Java EE 準拠のサーバー (Tomcat など) でない場合は、ライブラリを Web アプリケーションの WEB-INF/lib フォルダーに手動で追加する必要があります。どのライブラリを追加しますか? JSF のバージョンとその要件によって異なります (詳細を参照)。
JSF テクノロジを使用する際の前提条件は何ですか?
これはStackOverflow JSF wikiでカバーされています。そこから取られた:
最小要件
- JSF 1.0 および 1.1 には、少なくとも Servlet 2.4 / JSP 2.0 および Java 1.4 が必要です。
- JSF 1.2 は Servlet 2.4 で動作しますが、Servlet 2.5 と連携する JSP/EL 2.1 が最低限必要なので、結局のところ Servlet 2.5 が必要です。デフォルトのビュー テクノロジとして JSP 2.1 を Facelets 1.x に置き換えると、Servlet 2.4 で JSF 1.2 を使用できます。Java 1.5 以上が必要です。
- デフォルトで Facelets 2.x を使用する JSF 2.0 には、サーブレット 2.5 と連携する EL 2.1 が最低限必要であるため、結局のところサーブレット 2.5 が必要です。独自の EL 2.1 API/impl を提供する場合、理論上はサーブレット 2.4 で JSF 2.0 を実行できます。Java 1.5 以上が必要です。
- JSF 2.1 は Servlet 3.0 固有の機能をいくつか使用しますが、Servlet 2.5 と下位互換性があります。これらの Servlet 3.0 機能はオプションです。
- JSF 2.2 には、サードパーティ ライブラリを必要とせずに標準の Servlet 3.0 API を内部で使用する新しいファイル アップロード コンポーネントがあるため、少なくとも Servlet 3.0 が必要です。Java 1.6 以上が必要です。
サーブレット 2.4 コンテナーの例は、Tomcat 5.5.x、JBoss AS 4.x、および Sun Java Application Server です。
Servlet 2.5 コンテナーの例としては、Tomcat 6.0.x、JBoss AS 5.x、および GlassFish 2.x があります。
Servlet 3.0 コンテナーの例としては、Tomcat 7.0.x、JBoss AS 6.x および 7.x、GlassFish 3.x があります。
Servlet 3.1 コンテナーの例としては、Tomcat 8.0.x、WildFly 8.x、および GlassFish 4.x があります。