文档目录

应用集成提供一种简单的集成到现有系统的方案,一般情况下如非特殊需求不建议采用应用集成的方式,最好独立部署。独立部署不但拥有更好的灵活性而且对现有系统零侵入。

1. Servlet集成

请参考web.xml注册finderweb提供的DispatchServlet

2. Spring-MVC集成

/**
 * sprint mvc 集成
 */
@Controller
public class FinderController implements InitializingBean {
    @Resource
    private ServletContext servletContext;
    private com.skin.finder.web.ActionDispatcher dispatcher;

    @Override
    public void afterPropertiesSet() throws Exception {
        this.dispatcher = new com.skin.finder.web.ActionDispatcher();

        /**
         * 动态扫描的包
         */
        this.dispatcher.setPackages(new String[] {
            "com.skin.finder",
            "com.skin.finder.servlet",
            "com.skin.finder.admin.servlet",
            "com.skin.gateway.servlet",
            "com.skin.gateway.admin.servlet"
        });
        this.dispatcher.setExcludes(new String[] {
            "com.skin.finder.logback"
        });
        this.dispatcher.init(this.servletContext);
    }

    /**
     * 凡是集成到其他MVC框架中的, finder的集群模式 [可能] 会失效。
     * 要在集成模式下安全的使用finder的集群模式,请使用第一种方式集成,即配置servlet的方式。
     * 并且要将servlet配置到最前面,确保在其他mvc框架之前执行。
     */
    @RequestMapping(value = "/finder")
    public void execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String loginURL = com.skin.finder.filter.SessionFilter.getLoginURL(request);

        if(com.skin.finder.filter.SessionFilter.check(request, response, loginURL)) {
            this.dispatcher.service(request, response);
        }
    }
}
在web.xml中注册com.skin.finder.filter.HtmlSupportFilter
    <filter>
        <filter-name>HtmlSupportFilter</filter-name>
        <filter-class>com.skin.finder.filter.HtmlSupportFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HtmlSupportFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3. SpringBoot集成

1. 将finder-web-x.x.x.jar放到磁盘的任意目录。
2. 将demo.zip中的代码复制到你的项目中,新建一个Controller, 在Controller中调用FinderSupport.service(request, response)。
3. 重写一个filter并继承HtmlSupportFilter。
@Component
@ServletComponentScan
@WebFilter(urlPatterns = "/*", filterName = "HtmlSupportFilter")
public class FinderHtmlSupportFilter extends com.skin.finder.filter.HtmlSupportFilter {
}
    
注:如果不需要html预览功能,HtmlSupportFilter可以不注册。