10人参与 • 2026-02-01 • Java
pom.xml文件引入servlet和springmvc基础依赖(保证项目能运行)
<!-- 仅需引入servlet和springmvc基础依赖(保证项目能运行) -->
<dependencies>
<!--springmvc框架的核心依赖-->
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-web</artifactid>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-webmvc</artifactid>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupid>javax.servlet</groupid>
<artifactid>servlet-api</artifactid>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupid>javax.servlet.jsp</groupid>
<artifactid>jsp-api</artifactid>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>web.xml文件添加前端控制器、监听器、过滤器(解决中文乱码的问题)
<?xml version="1.0" encoding="utf-8"?>
<web-app
version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xml="http://www.w3.org/xml/1998/namespace"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<!--前端控制器-->
<servlet>
<servlet-name>dispatcherservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>
<!--初始化参数,加载springmvc.xml配置文件-->
<init-param>
<param-name>contextconfiglocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--启动加载-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--监听器-->
<listener>
<listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
</listener>
<context-param>
<param-name>contextconfiglocation</param-name>
<param-value>classpath:applicationcontext.xml</param-value>
</context-param>
<!--过滤器,解决中文乱码的问题-->
<filter>
<filter-name>characterencodingfilter</filter-name>
<filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterencodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
使用web.xml配置欢迎页是容器默认方式。
配置代码
在 src/main/webapp/web-inf/web.xml 下使用 <welcome-file-list> 标签配置欢迎页
<!-- 配置欢迎页 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file><!-- 先找这个 -->
<welcome-file>index.jsp</welcome-file> <!-- 找不到再找这个 -->
<welcome-file>index</welcome-file> <!-- 最后找这个 -->
<!--<welcome-file>web-inf/static/index.jsp</welcome-file>--><!-- × 错误写法 -->
</welcome-file-list>
访问位置

注意:
1. 访问的是 webapp 根目录下的 index.jsp 欢迎页,不是 static/ 或 web-inf/ 下的
2. 不需要编写controller层,不需要经过 springmvc 的 dispatcherservlet,tomcat会直接解析。
webapp (或 webcontent) 根目录下,没有放在 web-inf 里。<url-pattern>/</url-pattern>,可能会拦截欢迎页请求。需要配置静态资源处理或使用 <mvc:default-servlet-handler/>/web-inf/ 下,通过controller访问;静态首页可以放在webapp根目录。<%@ page contenttype="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>title</title>
</head>
<body>
<h2>springmvc-mvc:view-controller配置欢迎页</h2>
<p>访问路径:web-inf/views/index.jsp</p>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启mvc注解驱动 -->
<mvc:annotation-driven/>
<!-- 配置欢迎页 -->
<mvc:view-controller path="/" view-name="index"/>
<!-- 配置视图解析器 -->
<bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver">
<!--页面前缀-->
<property name="prefix" value="/web-inf/views/"></property>
<!--页面后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>运行会发现依然找的是webapp根目录下的index.jsp页面。
问题:即使web.xml中没有配置<welcome-file-list>,tomcat容器本身有默认的欢迎页查找机制。当访问应用根路径时,tomcat会按以下顺序自动查找:
1. index.html
2. index.htm
3. index.jsp
这就是为什么你访问根路径时,还是看到了/webapp/index.jsp,而不是/web-inf/views/index.jsp。
<%@ page contenttype="text/html;charset=utf-8" language="java" pageencoding="utf-8" %>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
<script>
// 自动跳转到spring mvc处理的首页
window.location.href = "${pagecontext.request.contextpath}/index";
</script>
</head>
<body>
<h2><%= "hello world!" %></h2>
</body>
</html>
2. 将 src/main/resources/springmvc.xml 配置文件中的
<mvc:view-controller path="/" view-name="index"/> 修改为(或添加) <mvc:view-controller path="/index" view-name="index"/> 就访问成功了

访问位置
访问 web-inf/views/index.jsp 页面

web-inf 下,但不需要执行任何 java 业务逻辑,只是单纯的跳转显示。<%@ page contenttype="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>title</title>
</head>
<body>
<h2>springmvc-controller配置欢迎页</h2>
<p>访问路径:web-inf/views/index.jsp</p>
</body>
</html>
在 src/main/resources/springmvc.xml 配置文件中配置欢迎页内容在方式二的基础上添加扫描包代码
<!-- 配置spring创建容器时要扫描的包 --> <context:component-scan base-package="com.qcby"></context:component-scan>
在controller层
package com.qcby.controller;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
@controller
public class welcomecontroller {
@requestmapping("/")
public string index(){
return "index";
}
}

访问位置
访问 web-inf/views/index.jsp 页面

| 方式 | 访问路径 | 配置位置 | 优点 | 缺点 |
|---|---|---|---|---|
| 方式一:web.xml欢迎页 | webapp/index.jsp | webapp根目录 | 简单,快速 | 无法使用spring mvc功能 |
| 方式二:mvc:view-controller | web-inf/views/index.jsp | web-inf目录 | 安全,可通过controller处理 | 配置复杂,需要正确spring mvc配置 |
| 方式三:controller | web-inf/views/index.jsp | controller转发 | 最灵活,可添加业务逻辑 | 需要写代码 |
以上就是ssm设置欢迎页的三种方式总结的详细内容,更多关于ssm设置欢迎页方式的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论