Spring MVC整合Tomcat时出现404 Not Found错误,无法显示首页求助
Spring MVC整合Tomcat时出现404 Not Found错误,无法显示首页求助
你好,我看你在搭建Spring MVC项目时碰到了首页404的问题,结合你贴出来的代码和配置,我帮你梳理几个大概率的问题点:
1. 视图解析器的后缀配置错误(最明显的问题)
在你的dispatcher-serverlet.xml里,视图解析器的suffix属性多了个斜杠!你写的是.jsp/,这会让Spring MVC去寻找/WEB-INF/views/home.jsp/这种不存在的路径,直接把斜杠去掉改成.jsp就好:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp" /> </bean>
2. 配置文件名拼写错误
你的web.xml里配置的servlet名字是dispatcher,Spring MVC默认会加载[servlet-name]-servlet.xml格式的配置文件,但你现在的配置文件名是dispatcher-serverlet.xml——注意是servlet不是serverlet!这个拼写错误会导致Spring找不到你的配置,组件扫描、注解驱动这些配置都不会生效,控制器自然也不会被注册。把文件名改成dispatcher-servlet.xml就对了。
3. 版本兼容性问题(Tomcat 10的坑)
Tomcat 10用的是Jakarta EE规范,包名从原来的javax.*改成了jakarta.*,如果你用的是Spring MVC 5.x版本,它是基于旧的Java EE规范的,两者会不兼容,导致控制器无法正常工作。解决办法要么升级到Spring MVC 6.x版本,要么换成Tomcat 9。
4. 其他需要核对的点
- 确认
home.jsp确实放在/WEB-INF/views/目录下,文件名和控制器返回的"home"完全一致(大小写也要对应); - 检查项目部署到Tomcat后的上下文路径:如果你的项目部署时设置了上下文路径(比如
/mystore),那访问首页的URL应该是http://localhost:8080/mystore/,而不是直接访问根路径; - 确认
context:component-scan的base-package是com.mystore,你的控制器在com.mystore.controller下,这个扫描范围是对的,但如果前面的配置文件加载失败,这个扫描也不会生效。
你可以先把前两个明显的错误修正,重启Tomcat试试,如果还是不行,可以补充下你的Spring MVC版本或者项目结构的截图,我再帮你进一步排查。
备注:内容来源于stack exchange,提问作者aiden021
相关产品推荐
相关产品推荐

