使用IntelliJ运行Spring MVC项目仅跳转Tomcat页面的解决方法
解决Spring MVC项目跳转到Tomcat默认页面的问题
结合你使用的Spring 5.0.4、Tomcat 9.0.2和Maven项目环境,以及给出的配置,咱们一步步排查这个问题:
1. 检查IntelliJ的Tomcat部署配置
这是最常见的原因之一:
- 打开
Run/Debug Configurations,找到你的Tomcat配置,切换到Deployment标签页 - 查看Application context字段:如果这里设成了非
/的值(比如你的项目名),那你需要访问http://localhost:8080/你的项目名才能进入项目,而不是直接访问http://localhost:8080 - 如果想直接通过根路径访问,把Application context改成
/,这样部署后你的项目会覆盖Tomcat的默认ROOT项目
2. 配置默认页面映射
你的web.xml里没有配置welcome-file-list,也没在Spring MVC里设置根路径的视图映射,Tomcat会默认找自身的欢迎页:
- 方法一:在web.xml里添加欢迎页配置:
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
确保你的webapp目录下存在index.jsp(或你指定的其他页面)
- 方法二:在
dispatcher-servlet.xml里添加视图控制器,直接映射根路径到你的首页:
<mvc:view-controller path="/" view-name="index"/>
同时要确保你已经配置了视图解析器,比如:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean>
这样Spring会找到/WEB-INF/views/index.jsp作为首页
3. 补全dispatcher-servlet.xml的关键配置
你给出的dispatcher-servlet.xml代码不完整,这会导致Spring MVC无法正常工作:
- 必须添加组件扫描,让Spring能找到你的控制器类:
<context:component-scan base-package="com.yourpackage.controller"/>
把com.yourpackage.controller替换成你实际的控制器所在包路径
- 开启MVC注解驱动,支持
@GetMapping、@Controller等注解:
<mvc:annotation-driven/>
4. 确保控制器正确映射根路径
如果想用控制器来处理首页请求,要编写对应的控制器方法:
@Controller public class HomeController { @GetMapping("/") public String showHomePage() { return "index"; // 对应视图解析器配置的index.jsp } }
注意这个控制器必须在component-scan指定的包范围内,否则Spring无法扫描到它
5. 清理Tomcat默认ROOT项目
如果你的Tomcat安装目录下的webapps/ROOT文件夹还存在,Tomcat会优先加载这个默认项目:
- 找到Tomcat的
webapps目录,删除ROOT文件夹 - 或者在IntelliJ部署时把你的项目设置为ROOT(参考第一步的Application context设置),覆盖默认的ROOT项目
内容的提问来源于stack exchange,提问作者Space
相关产品推荐
相关产品推荐

