반응형
すべてのJ2EEウェブアプリケーションは、web.xmlというデプロイメントディスクリプタで設定される必要があり、これはJSFも同様です。
JSFの場合、FacesServletがメインのサーブレットであるため、web.xmlにFacesServletを登録する必要があります。
基本的に、servletタグでサーブレットを指定し、servlet-mappingでパターンを設定する形でJSFのマッピングを行います。
当然のことですが、指定したサーブレットに対するマッピングを行うため、<servlet>タグ内の<servlet-name>と<servlet-mapping>タグの<servlet-name>は同じでなければなりません。
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
フィルタの場合、技術的にはサーブレットで実行できるすべての処理を実行できるため、<servlet-mapping>の代わりに<filter>タグでフィルタクラスを指定し、<filter-mapping>タグでマッピングすることもあります。
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.example.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
もちろん、<servlet-mapping>と<filter-mapping>のそれぞれにパターンを設定して両方を使用することも可能ですが、この場合はフィルタが先に実行され、サーブレットが最終的に処理を行います。
◆ JSFのマッピング可否について
JSFのマッピング | <servlet-mapping> | <filter-mapping> | 備考 |
OK | 〇 | ✕ | |
OK | ✕ | 〇 | |
OK | 〇 | 〇 | 処理順序: フィルタ ⇒ サーブレット |
NG | ✕ | ✕ |
原文はこちら JSF web.xml 서블릿, 필터 맵핑
記事の内容に誤りがあったり、追加したい内容がありましたら、コメントでお知らせください。学習の助けになります。
-- 記憶の有効期限は思ったより短い。 --
반응형
'IT 기타 > 일본어 연습' 카테고리의 다른 글
JSFのEL表現式エラー(The entity name must immediately follow the '&' in the entity reference.)解決方法 (0) | 2025.06.12 |
---|