org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'DispatcherServlet’
SpringMVC运行过程中遇到这个报错怎么办?
首先检查servlet-mapping中的配置是否正确:
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
servlet的url-pattern设置为
/*
时,它会覆盖其他所有的servlet,包括servlet容器提供的所有servlet,如缺少servlet和JSP servlet。 无论你发出什么请求,都会在该servlet拦截处理。通常我们不会这么做。如果你只是想使用/*
,那么你可以在Filter中使用,它处理完后会将url交给servlet处理。
servlet的url-pattern设置为
/
时, 它仅替换servlet容器的默认内置servlet,用于处理所有与其他注册的servlet不匹配的请求。直白点说就是,所有静态资源(js,css,image,html等)的访问都将交给该servlet处理,而jsp页面则交给servlet容器内置的JSP servlet处理。
引用链接:https://www.jianshu.com/p/186ba66362a9
因此将servlet的url-pattern设置为/
即可:
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
而enter这个超链接点进去又发生了错误怎么办?
报错:org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI [/hello] in DispatcherServlet with name 'DispatcherServlet’
发生这个问题可能是你没有在xml中配置bean。
<bean id="hello2020" class="cn.demo.controller.HelloController"/>
加上这行代码就可以正常运行啦:
还有一个办法,就是添加另一个注解context:component-scan
自动扫描并载入bean:
<context:component-scan base-package="cn.demo"/>