帆软报表本质是一个web项目,里面自然少不了servlet,filter等相关概念。

首先当帆软报表启动时,调用 com.fr.decision.base.DecisionServletInitializer, 该类对filter,servlet进行初始化:

1 注册filter,注册很多filter,包括CharacterEncodingFilter,GzipFilter,PluginStoreFilter以及通过扩展EmbedRequestFilterProvider,GlobalRequestFilterProvider注册进来得filter等。

2 注册servlet,注册了 com.fr.third.springframework.web.servlet.DispatcherServlet

 

我们访问帆软报表得所有请求都会首先进入到 com.fr.third.springframework.web.servlet.DispatcherServlet的doDispatchfang中。该请求代码如下 :

protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {HttpServletRequest processedRequest = request;HandlerExecutionChain mappedHandler = null;boolean multipartRequestParsed = false;WebAsyncManager