spring默认欢迎页设置

Spring Boot(3) Web开发(1)静态资源处理 Spring Boot(3) Web开发(1)静态资源处理 基于spring boot 2.4.3版本 1.静态资源访问 1.1 静态资源目录 把静态资源放在类路径下的以下目录:/static; /public; /resources; /META-INF/resources;这些目录作为这些静态资源的根目录,如输入http://localhost:8080/4.jpg可直接访问 过程:请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应4 阅读详情
  1. 简单配置的方式,直接展示静态网页,不经过Controller。
    web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问!

//-未指定欢迎页时,缺省等于如下配置。这个应该不同的Web服务器可以设置,但大多数都如此-。

<welcome-file-list>
 <welcome-file>index.html</welcome-file>
 <welcome-file>index.htm</welcome-file>
 <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

在web.xml中什么都不写的时候,默认访问WebContent目录下的index页面,不管是index.html还是index.jsp页面。但是这个页面不经过Controller的处理,相当于静态的页面。

此外也可以通过如下的方式,指定首页要显示的视图页面:

<welcome-file-list>
       <welcome-file>/WEB-INF/jsp/hello.jsp</welcome-file>
    </welcome-file-list>

以上方式,在浏览器中输入http://localhost:8080/工程名/,即可返回指定的页面。

2.在静态页面上进行跳转。核心 代码:<meta http-equiv="Refresh" content="0; URL=spring/">
项目目录下,有个index.html文件,加入如下内容进行跳转:

<html> 
<head>
  <meta http-equiv="Refresh" content="0; URL=spring/">
</head>
</html>

跳转到的url全路径就相当于 http://localhost:8080/项目名/spring/。这个路径就会由mvc 的DispatcherServlet来处理。为什么呢,是因为web.xml中进行了如下url配置:

<servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/app/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/spring/*</url-pattern>
</servlet-mapping>

此时在浏览器输入http://localhost:8080/项目名时候,浏览器的地址会自动的跳转到 http://localhost:8080/项目名/spring/,根据此规则,就会对应为MVC 路径路由中的 /。也就是HomeController。

@Controller
public class HomeController
{
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Model model)
    {        
        return "home";
    }
}

然后找到对应的home.jsp。

整个流程如此。其实缺省为什么设置这么一个spring路径。主要目的是为了提升spring对url的处理效率。spring/下的分支都交由spring来处理,其它的就可以交由web 服务器。

如果一切都交给spring处理,我们就要将 / 进行拦截。嗯,一定会由很多静态资源、或者其它动态jsp是另有用途,也会先被spring拦截,然后再当做另外来处理。可以是可以,但是效率上就会觉得多了一步。

但是,另一方面,我们在规划url时,可能会尽可能的减短,以方便用户的输入;同时,规划url时,才不会考虑spring的效率呢,也就是url设计先行。这个时候,通常不会有spring这个特定的路径;也就是spring要将就url的规划。也就是要对 / 进行拦截了。

3.配置servlet。
之前的SpingMVC配置控制器的代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <!-- 为spring配置监听器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml,
                 <!-- /WEB-INF/hello-dao.xml,
                 /WEB-INF/hello-service.xml, -->
    </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 默认首页定义 --> 
    <welcome-file-list>
       <welcome-file>/WEB-INF/jsp/hello.jsp</welcome-file> 
    </welcome-file-list>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 通过初始化参数声明配置文件位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/hello-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>


</web-app>

此时浏览器中输入http://localhost:8080/Hello/即可进入到指定的静态首页。

问题的由来:
welcome-file-list一般情况下只能使用静态网页,如果非要把他配置成SpringMVC的控制器URL就会报错

解决的方法:
仔细看了一些资料,发现welcome-file-list可以转向到servlet,但是!!!前提是servlet不能有扩展名,否则就当成静态文件处理了,那么这样的话就尝试了定义个没有扩展名的SpringMVC控制器URL。修改配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <!-- 为spring配置监听器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml,
                 <!-- /WEB-INF/hello-dao.xml,
                 /WEB-INF/hello-service.xml, -->
    </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 指定welcome-file-list要转向的servlet -->
    <welcome-file-list>
       <welcome-file>index</welcome-file>  <!-- 注意 -->
    </welcome-file-list>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 通过初始化参数声明配置文件位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/hello-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/index</url-pattern>     <!-- 注意 -->
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>


</web-app>

注意:welcome-file-list配置的是没有 / 的 index,下面为SpringMVC控制器单独注册了一个 /index 的URL(这个有 “/”)
Controller写法:

@Controller
public class Shouye {
    @RequestMapping(value = "/index") 
    public String index(){  
        System.out.print("333shouye");
            return "index";  
    }  


}

此时浏览器中输入http://localhost:8080/Hello/,即可进入到Shouye 返回的视图。

4.直接对根路径进行拦截
必须在web.xml中加入如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <!-- 为spring配置监听器 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml,
                 <!-- /WEB-INF/hello-dao.xml,
                 /WEB-INF/hello-service.xml, -->
    </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 指定默认页面 -->
    <welcome-file-list>
       <welcome-file></welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 通过初始化参数声明配置文件位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/hello-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>


</web-app>

此时,web服务器就知道,根路径不要web服务器来处理,而是由程序自身来处理。这时,index.html也就不起作用了。

然后,根路径就被 Shouye 这个Controller拦截了;因为其中配置了对”/”的映射。

@Controller
public class Shouye {
    @RequestMapping(value = "/") 
    public String index(){  
        System.out.print("333shouye");
            return "index";  
    }  


}

此时浏览器中输入http://localhost:8080/Hello/,即可进入到Shouye 返回的视图。

welcome-file-list 与SpringMvc 的 DispatcherServlet 在SpringMVC中 所有的请求都由dispatcherServlet处理(url-pattern配置的是/),当配置文件中有对静态资源的处理   时候  ,先匹配 welcome-file-list 中的文件,依次查找,找到了就 返回,如果没有找到就继续匹配到controller 例如附件例子,webapp下有test.html 和index.html两个文件,访问仅仅输入 工程名称 ,首先会返回test.html .如果此文件不存在 则返回index.html,如果都不存在则 进入controller 立即下载

相关推荐

MaaS 商业模式全面分析报告:从技术赋能到商业变现的全链条探索

MaaS(模型即服务)商业模式正成为AI产业主流,2024年上半年中国市场规模达2.5亿元,预计2027年占比将提升至47%。该模式通过云服务提供预训练AI模型,大幅降低企业应用AI的技术门槛和成本。核心盈利方式包括按使用量计费、订阅制、定制化服务等,其中混合模式因灵活性成为趋势。MaaS产业链包含模型提供商、云平台、应用开发商和最终用户,重塑了AI产业格局。随着《数据法案》等监管加强,数据增值服务面临更严格合规要求。未来五年,中国MaaS市场增速预计超50%,用户规模将从2025年2.1亿增至2030年5

芯片行业20年 · 参与定义实现千万级量产出货 · AI芯片PM 2892

23SpringBoot的欢迎页

在SSM中一般启动服务器后,会自动跳转到 默认的欢迎页或者通过web.xml中的welcome-file-list指定的欢迎页。但在Springboot中则无法自动跳转,因此需要自定义一个controller来实现,实现代码如下: @Component public class JumpController implements ApplicationRunner{ @Override public void run(ApplicationArguments args) throws E

qq_41946216的博客 1071

3. ChaosBlade-Box平台安装

参考自:https://chaosblade.io/docs/about-chaosblade/box-introduce/通过ChaosBlade-Box可实现chaosblade等已托管工具自动化部署,按照社区的建立的混沌实验模型统一实验场景,根据主机、Kubernetes、应用来划分目标资源,通过目标管理器来控制,在实验创建页面,可以实现白屏化的目标资源选择。

lldhsds的专栏 2485

spring boot 首页配置

spring mvc中首页的配置是通过在web.xml中增加 &lt;welcome-file-list&gt; 实现的,其中 welcome-file 指向的是controller中的路径 spring mvc 最终会返回一个index页面 在spring boot中,也是可以配置首页的,不过配置的方式不一样,下面讲解一下: 最终解析到login页面...

T2080305的博客 1255

NTFS分区变成RAW别乱修!正确数据恢复与修复方法详解

文件系统是操作系统管理存储数据的核心机制,NTFS作为Windows主流文件系统,一旦分区识别异常,常会显示为RAW格式。分区变RAW通常意味着文件系统入口信息损坏,而非数据物理消失,但若采用错误的修复方式,如直接对RAW分区执行chkdsk /f,可能因系统无法正确识别文件系统结构,导致写入操作落在错误偏移位置,二次破坏本可恢复的数据。正确的处理思路是:先停止一切写入操作,通过扇区级镜像备份保留原始现场,再分析DBR、分区表及$MFT状态,依据诊断结果选择修复或深度扫描恢复。实际排查中,常见问题如DBR记

weixin_31155097的博客 134

3种六轴IMU姿态解算算法对比:互补滤波、Mahony与卡尔曼滤波性能实测

本文深入对比了三种六轴IMU姿态解算算法:互补滤波、Mahony与卡尔曼滤波的性能表现。通过实测数据分析了各算法在精度、计算复杂度和适用场景上的差异,为无人机、机器人等运动控制系统提供了选型建议。重点探讨了六轴陀螺仪与加速度传感器的数据融合技术,帮助开发者根据项目需求选择最优解算方案。

weixin_29054245的博客 337

SpringMVC默认访问路径配置

SpringMVC默认访问路径配置 需求:只访问域名,不加任何action路径,想访问默认的一个action. 比如www.jd.com,就跳到京东首页,会加载出辣么多东西来 关于这个的方法,网上有千千万种,在这里只是记录一种常用的, 亲测这个可以用,而且我们的项目一直都是这个套路. 第一步,web.xml中配置: &lt;web-app&gt; ...前面的配置... ...

zhangsir的博客 2万+

sentaurus学习笔记(一)器件仿真

之前有跟大家说,以后转到sentaurus,因此silvaco会用的比较少,结果发现真的有一点贪心厌旧的感觉,现在基本上不用silvaco(lll¬ω¬)故这篇文章,将为大家带来的是关于sentaurus的结构仿真和器件的特性的提取。我们还是老规矩,先上结构图。 还是一个经典的IGBT结构,这是一个典型的N型IGBT,下面我将把一些相关的结构,和具体的写法用下面一幅图表达出来。 这里因为方便看,我们把器件的比例画的比较抽象。可以看到的是,这里有很多的距离参数是用一些变量名来写的,这也是sentaurus

weixin_43262021的博客 2万+

SpringBoot学习日志之DAY05springboot默认首页设置

目录 什么是默认首页 配置springboot默认首页 方式一:通过controller指定RequestMapping路径为(/) 方式二:通过自定义配置类实现WebMvcConfigurer进行设置 方式三:直接将index.html页面放在templates下面就行了 方式四 直接将index.html文件放在static目录下面 什么是默认首页     在启动WEB项目之后...

光滑的秃头 859

【BUG已解决】pip install 出现 error: Microsoft Visual C++ 14.0 or greater is required 解决方案

方案磁盘占用适用场景推荐指数安装Build Tools3-6GB长期Windows Python开发⭐⭐⭐⭐⭐寻找预编译wheel无额外占用只是想快速装上某个包⭐⭐⭐⭐⭐用conda安装视包而定已经在用conda环境⭐⭐⭐⭐⭐升级到新版本无额外占用库本身有更新的预编译版本⭐⭐⭐⭐使用WSL2需要额外配置Linux子系统频繁遇到Windows编译问题⭐⭐⭐⭐的核心是Windows 缺少本地 C/C++ 编译器,而目标包需要在本机编译。先看是否有捷径。

博客 1万+

RK3568平台YOLO11模型部署实战:从环境搭建、模型转换到板端性能优化全解析

摘要: 本文详细介绍了在RK3568平台上从零部署YOLO11模型的完整流程。主要内容包括:1) 基于Conda搭建Python 3.8开发环境并安装RKNN-Toolkit2工具链;2) 使用LabelImg工具标注数据并构建YOLO格式数据集;3) 基于Ultralytics框架进行YOLO11模型训练及参数优化;4) 实现PyTorch→ONNX→RKNN的完整模型转换链。文章特别针对RK3568平台的NPU特性提供了关键参数配置建议,并分享了实际开发中的经验总结,最终可达到30FPS的稳定推理性能。

LXY_LOVE36的博客 280

Spring Boot设置默认欢迎页

Spring Boot设置默认欢迎页1.新建MVCConfiguration类:2.在resources/static目录下新建目录pages/login.html 1.新建MVCConfiguration类: import org.springframework.context.annotation.Configuration; import org.springframework.core.O...

a277548380的博客 2348

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化

在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现

安卓兼职framework和app工程师的博客 524

java spring 默认页面_spring默认欢迎页设置

简单配置的方式,直接展示静态网页,不经过Controller。web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问!//-未指定欢迎页时,缺省等于如下配置。这个应该不同的Web服务器可以设置,但大多数都如此-。index.htmlindex.htmindex.jsp在web.xml中什么都不写的时候,默认访问WebContent目录下的index页...

weixin_34096605的博客 1225

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring boot之默认首页(欢迎页)的设置

import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.sprin...

u011429743的博客 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

<转载>springmvc(29):spring默认欢迎页设置

<转载>springmvc(29):spring默认欢迎页设置

Diligence is the mother of success. 407

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringMVC默认进入指定页的方法

1、直接访问指定静态页面 在tomcat中指定页面 <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>ind...

时光有伱,记忆成花~ 4295

Spring Boot开发(六)静态资源映射

在 Web 应用中会涉及到大量的静态资源,例如 JS、CSS 和 HTML 等。我们知道,Spring MVC 导入静态资源文件时,需要配置静态资源的映射;但在 SpringBoot 中则不再需要进行此项配置,因为 SpringBoot 已经默认完成了这一工作。 Spring Boot 默认为我们提供了 3 种静态资源映射规则: WebJars 映射 默认资源映射 静态首页(欢迎页)映射 WebJars 映射 WebJars 是将客户端(浏览器)资源(JavaScript,Css等)打成 Jar

m0_53698336的博客 6451

【SpringBoot系列】首页和模板引擎

一、欢迎页是如何映射? 1、还是原来的办法:在WebMvcAutoConfiguration.java中找到welcomePageHandlerMapping public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext, FormattingConversionService mvcConversionService, ResourceUrlProvider..

王华春_Jason 753

spring boot静态资源规则与定制化

1.静态资源访问 1.静态资源目录 只要静态资源放在类路径下的/static或者/public或者/resources或者META-INF/resources目录下,就可以通过项目根路径/+静态资源名访问。 原理:静态映射/** (项目路径下的所有) 请求进来先找Controller看能不能处理,不能处理的所有请求就交给静态资源处理器,静态资源也找不到就返回404. 2.静态资源访问前缀:默认无前缀/** 可以使用配置文件配置,application.yaml spring: ...

qq_42338293的博客 151

总结SSM设置欢迎页的方式

本文介绍了SSM项目中配置欢迎页的三种方式:1)通过web.xml配置基础欢迎页,适用于静态页面;2)使用SpringMVC的view-controller配置,适用于WEB-INF目录下的页面;3)通过Controller转发实现,灵活性最高,可处理业务逻辑。重点说明了每种方式的配置步骤、适用场景及注意事项,特别强调了Tomcat默认欢迎页机制的影响及解决方案。推荐根据项目需求选择合适方式,其中Controller方式最灵活常用,适合需要业务处理的场景。

m0_64928156的博客 625

Spring MVC静态资源映射

Spring MVC静态资源映射 我们在做路径映射规则时,有时候我们并不想要匹配一个页面,或者返回数据,而是返回一个静态资源(类似图片等),这时候就需要用到Spring MVC的静态资源映射规则 默认静态资源路径 在Spring Boot中已经规定了一些包路径下的资源是静态资源,在默认的情况下,这个包下的静态资源是可以直接访问的 由官方文档可知,当我们将静态资源放在以下包中,可以直接访问 classpath:/static classpath:/public classpath:/resources c

blackball1998的博客 1252

Spring核心技术-Web开发-静态资源访问

1、SpringMVC自动配置概览 Spring Boot provides auto-configuration for Spring MVC that works well with most applications.(大多场景我们都无需自定义配置)

sfklyqh的博客 458

springboot2x-静态资源配置原理

1、在org.springframework.boot:spring-boot-autoconfigure:2.3.4.RELEASE找到WebMvcAutoConfiguration 2、SpringBoot启动默认加载xxxAutoConfiguration 3、SpringMVC功能默认加载WebMvcConfiguration,SpringMVC生效=》 @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication

Choco1ove的博客 224

springboot2设置后spring.mvc.static-path-pattern后找不到favicon.ico和首页的问题

问题描述: 不设置spring.mvc.static-path-pattern时,在静态文件目录里放index.html和favicon.ico,会自动设置好欢迎页和title的图标。 设置后,访问静态文件需要加上设置好的前缀,欢迎页和title的url默认没加,所以找不到。 其中静态文件目录可以通过spring.web.resources.static-locations进行覆盖修改。 可以通过如下方法解决favicon的问题,欢迎页类似。 @RequestMapping("/favicon.ico")

weixin_43292547的博客 1479
上一篇: Eclipse中自动添加注释(作者,时间)
下一篇: 公钥和私钥的区别
cs408
博客等级 码龄12年 57粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值