java类javax.servlet.DispatcherType的实例源码

ApplicationFilterRegistration.java 文件源码 项目:tomcat7 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void addMappingForUrlPatterns(
        EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter,
        String... urlPatterns) {

    FilterMap filterMap = new FilterMap();

    filterMap.setFilterName(filterDef.getFilterName());

    if (dispatcherTypes != null) {
        for (DispatcherType dispatcherType : dispatcherTypes) {
            filterMap.setDispatcher(dispatcherType.name());
        }
    }

    if (urlPatterns != null) {
        for (String urlPattern : urlPatterns) {
            filterMap.addURLPattern(urlPattern);
        }

        if (isMatchAfter) {
            context.addFilterMap(filterMap);
        } else {
            context.addFilterMapBefore(filterMap);
        }
    }
    // else error?

}
ApplicationDispatcher.java 文件源码 项目:tomcat7 阅读 35 收藏 0 点赞 0 评论 0
private void doDispatch(ServletRequest request, ServletResponse response)
        throws ServletException, IOException {

    // Set up to handle the specified request and response
    State state = new State(request, response, false);

    // Create a wrapped response to use for this request
    wrapResponse(state);

    ApplicationHttpRequest wrequest =
        (ApplicationHttpRequest) wrapRequest(state);

    if (queryString != null) {
        wrequest.setQueryParams(queryString);
    }

    wrequest.setAttribute(Globals.DISPATCHER_TYPE_ATTR,
            DispatcherType.ASYNC);
    wrequest.setAttribute(Globals.DISPATCHER_REQUEST_PATH_ATTR,
            getCombinedPath());

    wrequest.setContextPath(context.getPath());
    wrequest.setRequestURI(requestURI);
    wrequest.setServletPath(servletPath);
    wrequest.setPathInfo(pathInfo);
    if (queryString != null) {
        wrequest.setQueryString(queryString);
        wrequest.setQueryParams(queryString);
    }

    invoke(state.outerRequest, state.outerResponse, state);
}
TestAsyncContextImpl.java 文件源码 项目:tomcat7 阅读 30 收藏 0 点赞 0 评论 0
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
TestAsyncContextImpl.java 文件源码 项目:tomcat7 阅读 35 收藏 0 点赞 0 评论 0
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    if (DispatcherType.ASYNC.equals(req.getDispatcherType())) {
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("UTF-8");
        resp.getWriter().write(req.getRequestURI());
    } else {
        req.startAsync().dispatch();
    }
}
TestAbstractHttp11Processor.java 文件源码 项目:tomcat7 阅读 33 收藏 0 点赞 0 评论 0
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC.equals(req.getDispatcherType())) {
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("UTF-8");
        resp.getWriter().write("OK\n");
    } else {
        req.startAsync().dispatch();
    }
}
WebConfigurer.java 文件源码 项目:SpringBootDemoApp 阅读 46 收藏 0 点赞 0 评论 0
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    if (env.getActiveProfiles().length != 0) {
        log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
    }
    EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
    initH2Console(servletContext);
    log.info("Web application fully configured");
}
WebConfigurer.java 文件源码 项目:xm-gate 阅读 42 收藏 0 点赞 0 评论 0
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    if (env.getActiveProfiles().length != 0) {
        log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
    }
    EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
    initMetrics(servletContext, disps);
    log.info("Web application fully configured");
}
EventApisFactory.java 文件源码 项目:eventapis 阅读 29 收藏 0 点赞 0 评论 0
@Bean
public FilterRegistrationBean createOpContextFilter(@Autowired OperationContext operationContext) {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(new OpContextFilter(operationContext));
    registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
    return registration;
}
ExampleApplicationConfig.java 文件源码 项目:gamesboard 阅读 28 收藏 0 点赞 0 评论 0
@Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        //If you want to use the XML configuration, comment the following two lines out.
        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        rootContext.register(ApplicationContext.class);
//        rootContext.scan("com.pigdroid.social.config");

        //If you want to use the XML configuration, uncomment the following lines.
        //XmlWebApplicationContext rootContext = new XmlWebApplicationContext();
        //rootContext.setConfigLocation("classpath:exampleApplicationContext.xml");

        ServletRegistration.Dynamic dispatcher = servletContext.addServlet(DISPATCHER_SERVLET_NAME, new DispatcherServlet(rootContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping(DISPATCHER_SERVLET_MAPPING);

        EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);

        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);

        FilterRegistration.Dynamic characterEncoding = servletContext.addFilter("characterEncoding", characterEncodingFilter);
        characterEncoding.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

        FilterRegistration.Dynamic security = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
        security.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

        FilterRegistration.Dynamic sitemesh = servletContext.addFilter("sitemesh", new ConfigurableSiteMeshFilter());
        sitemesh.addMappingForUrlPatterns(dispatcherTypes, true, "*.jsp");

        servletContext.addListener(new ContextLoaderListener(rootContext));
    }
NettyFilterRegistration.java 文件源码 项目:tasfe-framework 阅读 27 收藏 0 点赞 0 评论 0
@Override
public void addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... urlPatterns) {
    NettyEmbeddedContext context = getNettyContext();
    for (String urlPattern : urlPatterns) {
        context.addFilterMapping(dispatcherTypes, isMatchAfter, urlPattern);
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号