void vfs::Path::doCheck() { if(!_path.empty()) { unifySeparators(_path); vfs::UInt32 number_of_separators = removeSeparators(_path); if(number_of_separators>0) { removeDots(_path,number_of_separators+1); getFirstLastSeparator(_path.c_str(),_sep.first,_sep.last); } } }
void FilterDispatcher::dispatch(Servlet& servlet, HttpServletRequest& request, HttpServletResponse& response) { std::string path = request.getServletPath(); std::string ctxName = PathMapping::splitPath(path); std::string filterName = resolve(ctxName, path); FilterProvider* pFilterProvider = getFilterProvider(removeSeparators(ctxName)); if(pFilterProvider) { const Filter& f = pFilterProvider->getFilter(filterName); const FilterChain& fc = pFilterProvider->getFilterChain(servlet); f.doFilter(request, response, &fc); } else servlet.service(request, response); }