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

nablarch.fw.web.servlet.RepositoryBasedWebFrontController Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
package nablarch.fw.web.servlet;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import nablarch.core.repository.SystemRepository;

/**
 * リポジトリ機能を使用して構築した{@link WebFrontController}を保持し、
 * そこに対してリクエスト処理を委譲するリクエストコントローラー
 * 
 * @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 {
        controller = SystemRepository.get("webFrontController");
        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