SpringMVC请求路径问题及解决(路径前面加不加/的问题)

 更新时间:2025年10月17日 09:02:36   作者:青春~要拼搏  
文章讲解了Web开发中请求路径的构成和绝对路径、相对路径的区别,重点分析了相对路径是否带斜杠(/)对资源定位的影响,并结合前后台路径解析进行说明,最后建议按规范使用带斜杠的路径

一、请求路径

一个正确的请求路径应该是由资源路径+资源名称组成

http://localhost:8080/sk_war_exploded/login.do为绝对路径

http://localhost:8080/sk_war_exploded为资源路径 

login.do为资源名称 

相对路径:

/login.do就是一个相对路径,相对路径会依赖于一个其他路径作为参照路径,与这个参照路径组合去定位一个资源,绝对路径 =参照路径+相对路径

二、相对路径前是否加上斜杠(/),会产生不同的效果

2.1、路径解析在前台

根路径为http://localhost:8080/ (服务器的根路径)

1、开头不带斜杠的相对路径

<a href="login.do" rel="external nofollow"  th:if="${userInformation.username}==null" id="user_name_a" th:value="wsk">登录</a> 

相对路径不带斜杠时,这个路径为当前资源路径的一个子路径 

此时的访问地址即:

http://localhost:8080/sk_war_exploded/login.do,此时可以正确访问

2、开头带斜杠的相对路径 

<a href="/login.do" rel="external nofollow"   th:if="${userInformation.username}==null">注册</a>

相对路径带斜杠时,这个路径表示该路径为根路径的一个子路径

此时的访问地址即:

http://localhost:8080/login.do解析地址失败

2.2、路径解析在后台

根路径为http://localhost:8080/sk_war_exploded/

1、开头不带斜杠的相对路径

    //@RequestMapping带上/是绝对路径,加斜杠就是找跟路径下的,不带是相对(规范应该带)
    @RequestMapping(value = "login.do", method = RequestMethod.GET)
    public String login(HttpServletRequest request, Model model) {
 
    }

相对路径不带斜杠时,这个表示该路径为当前资源路径的一个子路径

此时的访问地址即:

http://localhost:8080/sk_war_exploded/login.do,此时可以正确访问

 2、开头带斜杠的相对路径

   //@RequestMapping带上/是绝对路径,加斜杠就是找跟路径下的,不带是相对(规范应该带)
    @RequestMapping(value = "/login.do", method = RequestMethod.GET)
    public String login(HttpServletRequest request, Model model) {

 }

相对路径带斜杠时,开头路径表示该路径为根路径的一个子路径

此时的访问地址即:

http://localhost:8080/sk_war_exploded/login.do,此时可以正确访问

原因:

由于后台解析路径的时候,根路径为http://localhost:8080/sk_war_exploded/,

1、当我们不加斜杠的时候,就是以相对路径解析,但是因为我们的根路径就是http://localhost:8080/sk_war_exploded/,最终定位还是回到http://localhost:8080/sk_war_exploded/login.do,

2、加斜杠时,以绝对路径进行解析,但是由于根路径和当前资源路径都定位到http://localhost:8080/sk_war_exploded/,所以最终定位还是回到http://localhost:8080/sk_war_exploded/login.do,但是,规范规定应该加斜杠(/)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Maven pom.xml scope属性的使用

    Maven pom.xml scope属性的使用

    在Maven中,scope属性用于定义依赖关系在不同生命周期阶段的行为,影响依赖在构建过程中的下载和使用,以及是否传递给其他项目,常见的scope值包括compile、provided、runtime和test等
    2025-01-01
  • 全面了解Java中的内部类和匿名类

    全面了解Java中的内部类和匿名类

    下面小编就为大家带来一篇全面了解Java中的内部类和匿名类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • 详解maven安装教程以及解决安装不成功的解决办法

    详解maven安装教程以及解决安装不成功的解决办法

    这篇文章主要介绍了详解maven安装教程以及解决安装不成功的解决办法,详细的介绍了几种解决方法,非常具有实用价值,需要的朋友可以参考下
    2018-12-12
  • SpringBoot定时任务参数运行代码实例解析

    SpringBoot定时任务参数运行代码实例解析

    这篇文章主要介绍了SpringBoot定时任务运行代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 解决java.sql.Timestamp丢失精度的问题

    解决java.sql.Timestamp丢失精度的问题

    这篇文章主要介绍了解决java.sql.Timestamp丢失精度的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 浅谈java中守护线程与用户线程

    浅谈java中守护线程与用户线程

    本篇文章主要介绍了浅谈java中守护线程与用户线程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java如何判断一个整数有多少位

    Java如何判断一个整数有多少位

    这篇文章主要介绍了Java如何判断一个整数有多少位问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java使用EasyExcel实现高效的Excel读写操作

    Java使用EasyExcel实现高效的Excel读写操作

    在日常开发中,Excel 文件的读写操作是一个常见的需求,EasyExcel 是阿里巴巴开源的一个高性能、易用的 Excel 读写库,可以大幅提高处理 Excel 文件的效率,本篇博客将从 EasyExcel 的基本概念、优势、安装、读写操作以及高级用法展开,需要的朋友可以参考下
    2024-12-12
  • Spring中FactoryBean的高级用法实战教程

    Spring中FactoryBean的高级用法实战教程

    FactoryBean是Spring框架的高级特性,允许自定义对象的创建过程,适用于复杂初始化逻辑,本文给大家介绍Spring中FactoryBean的高级用法实战,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 深入解析Java的设计模式编程中单例模式的使用

    深入解析Java的设计模式编程中单例模式的使用

    这篇文章主要介绍了深入解析Java的设计模式编程中单例模式的使用,一般来说将单例模式分为饿汉式单例和懒汉式单例,需要的朋友可以参考下
    2016-02-02

最新评论