it编程 > 编程语言 > Java

SSM设置欢迎页的三种方式总结

10人参与 2026-02-01 Java

ssm项目设置欢迎页

前期准备

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配置欢迎页(最基础且推荐)

使用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会直接解析。

  1. 适用场景
    适合静态的 html 或 jsp,且直接放在 webapp (或 webcontent) 根目录下,没有放在 web-inf 里。
  2. 注意事项
    1. web.xml配置中有文件查找顺序
    2. dispatcherservlet影响:如果配置了 <url-pattern>/</url-pattern>,可能会拦截欢迎页请求。需要配置静态资源处理或使用 <mvc:default-servlet-handler/>
    3. 安全考虑:业务页面建议放在 /web-inf/ 下,通过controller访问;静态首页可以放在webapp根目录。

方式二:使用springmvc-mvc:view-controller配置欢迎页

  1. 配置代码
    1. pom.xml同前期准备内容一样
    2. web.xml内容同方式一中的内容一样,添加<welcome-file-list> 标签
    3. 在 src/main/webapp/web-inf/views/ 下使新建 index.jsp页面
<%@ 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。

  1. 解决问题
    1. 解决方法一:删除webapp根目录下的index.jsp页面
    2. 解决方法二:添加跳转页面代码
      1. 在 webapp根目录下的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 页面

  1. 适用场景
    页面在 web-inf 下,但不需要执行任何 java 业务逻辑,只是单纯的跳转显示。
  2. 注意事项
    由于tomcat容器本身有默认的欢迎页查找机制,所有配置有些麻烦。

方式三:使用springmvc-controller配置欢迎页(最常用)

  1. 配置代码
    1. pom.xml同前期准备内容一样
    2. web.xml内容同方式一中的内容一样,添加<welcome-file-list> 标签
    3. webapp根目录下的index.jsp页面中添加跳转,与方式二中解决问题方法二的代码一样
    4. 在 src/main/webapp/web-inf/views/ 下使新建 index.jsp页面
<%@ 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 页面

  1. 适用场景
    1. 页面放在 web-inf 目录下(最安全)
    2. 需要查询数据、处理业务逻辑或使用模板引擎
    3. 通过springmvc拦截/请求并转发到指定的视图

总结

方式访问路径配置位置优点缺点
方式一:web.xml欢迎页webapp/index.jspwebapp根目录简单,快速无法使用spring mvc功能
方式二:mvc:view-controllerweb-inf/views/index.jspweb-inf目录安全,可通过controller处理配置复杂,需要正确spring mvc配置
方式三:controllerweb-inf/views/index.jspcontroller转发最灵活,可添加业务逻辑需要写代码

以上就是ssm设置欢迎页的三种方式总结的详细内容,更多关于ssm设置欢迎页方式的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

SpringBoot使用LibreOffice实现高保真Word转PDF的方法

02-01

SpringBoot3配置文件的使用技巧分享

02-01

SpringBoot接口获取参数的常用注解详解

01-31

Java自动化设置PDF文档属性的示例代码

01-31

Spring Boot异常处理try-catch应该怎么使用?

01-31

Java多重数组使用及说明

01-31

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论