报错信息:
DispatcherServlet with name 'DispatcherServlet' processing GET request for [/sBank/] (DispatcherServlet.java:843)
No mapping found for HTTP request with URI [/sBank/] in DispatcherServlet with name 'DispatcherServlet' (DispatcherServlet.java:1118)
Successfully completed request (FrameworkServlet.java:961)
最近在使用springMVC,在启动项目的时候发现了这个问题,发现是web.xml中的DispatcherServlet配置错误。
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
我配置的是 /* 所以导致这样的错误,配置成 / 就好了。
下面来解释一下这两个的区别:
程序得到一个url请求后,会返回对应的controller,通过Forword转发到对应的视图jsp
/* : 如果使用 /* 会被spring的Dispatcher拦截,当做一个controller去匹配,匹配不到就会返回404
/ : 如果使用 / 将直接访问到jsp,不经过spring的DispatcherServlet ,不会被他拦截