不是順序問題,是就不攔截Servlet
不是load-on-startup啟動先后順序問題,是就是不攔截Servlet。
SpringMVC默認用的是第二個
//<url-pattern>/*</url-pattern>會攔截JSP,靜態文件,不攔截Servlet,攔截陌生URL
//<url-pattern>/</url-pattern>攔截靜態文件,不攔截JSP和Servlet,攔截陌生URL
public class MyDispatcherServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(req.getRequestURI());
}
}
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>servlet.MyDispatcherServlet</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>JsonServlet</servlet-name>
<servlet-class>servlet.JsonServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JsonServlet</servlet-name>
<url-pattern>/getJson</url-pattern>
</servlet-mapping>