All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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