Exemplo n.º 1
0
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);
		}
	}
}
Exemplo n.º 2
0
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);
}