1、重写DispatcherServlet
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
@SuppressWarnings("serial")
public class MyDispatcherServlet extends DispatcherServlet {
public static final Set MAPPING_URLS = new HashSet<>();
@Override
protected void initStrategies(ApplicationContext context) {
super.initStrategies(context);
Map matchingBeans =
BeanFactoryUtils.beansOfTypeIncludingAncestors(context, HandlerMapping.class, true, false);
for(HandlerMapping handlerMapping : matchingBeans.values()) {
if(handlerMapping instanceof RequestMappingHandlerMapping) {
RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping;
Map handlerMethods = rmhm.getHandlerMethods();
for(RequestMappingInfo rmi : handlerMethods.keySet()) {
PatternsRequestCondition prc = rmi.getPatternsCondition();
MAPPING_URLS.addAll(prc.getPatterns());
}
}
}
System.out.println(">>>>>>>>>>>>>>>>");
for (String string : MAPPING_URLS) {
System.out.println(string);
}
System.out.println(">>>>>>>>>>>>>>>>");
}
}
2、在web.xml中配置重写的MyDispatcherServlet
springServlet
com.huatech.web.listener.MyDispatcherServlet
contextConfigLocation
classpath:/spring-mvc.xml
1
springServlet
*.html