
nablarch.fw.web.servlet.RepositoryBasedWebFrontController Maven / Gradle / Ivy
The newest version!
package nablarch.fw.web.servlet;
import java.io.IOException;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import nablarch.core.repository.SystemRepository;
/**
* リポジトリ機能を使用して構築した{@link WebFrontController}を保持し、
* そこに対してリクエスト処理を委譲するリクエストコントローラー.
* controllerNameのパラメータ値にコントローラ名を設定することで、設定した名前を元に移譲するWebFrontControllerを取得することができる。
* デフォルトではwebFrontControllerという名前で移譲するWebFrontControllerを取得する。
* {@code
* -------------------------------------
* デプロイメントディスクリプタの記述例
* -------------------------------------
*
*
* w8
*
* The default application-context for w8.http-based applications.
*
*
* webEntryPoint
*
* nablarch.fw.web.servlet.RepositoryBasedWebFrontController
*
*
* controllerName
* otherNameController
*
*
*
* webEntryPoint
* /*
*
*
* }
*
* @see WebFrontController
* @author Iwauo Tajima
*/
public class RepositoryBasedWebFrontController implements Filter {
/**{@inheritDoc}
* この実装では、保持しているリクエストコントローラに対して
* 処理を委譲するのみ。
*/
public void destroy() {
controller.destroy();
}
/**{@inheritDoc}
* この実装では、保持しているリクエストコントローラに対して
* 処理を委譲するのみ。
*/
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
controller.doFilter(request, response, chain);
}
/**{@inheritDoc}
* リポジトリ機能を用いてWebFrontControllerのインスタンスを初期化し、
* 以降の全ての処理をそこへ委譲する。
*/
public void init(FilterConfig filterConfig) throws ServletException {
String controllerName = filterConfig.getInitParameter("controllerName");
if (controllerName == null) {
controllerName="webFrontController";
}
controller = SystemRepository.get(controllerName);
if (controller == null) {
throw new ServletException(
"webFrontController must be configured in SystemRepository."
);
}
controller.setServletFilterConfig(filterConfig);
}
/**
* 処理を委譲するリクエストコントローラのインスタンス
*/
private WebFrontController controller = null;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy