SpringMVC相对路径和绝对路径

news2024/11/26 19:20:53

1.相对地址与绝对地址定义

在jsp,html中使用的地址,都是在前端页面中的地址,都是相对地址
地址分类:
	(1),绝对地址,带有协议名称的是绝对地址,http://www.baidu.com
	(2),相对地址,没有协议开头的,例如user/some.do,/user/some.do。相对地址不能独立使用,必须有一个参考地	址。通过参考地址+相对地址本身
	才可以指定资源。

2.访问地址前面加不加 /

2.1 案例展示

web.xml文件代码
	<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <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>*.do</url-pattern>
    </servlet-mapping>
index.jsp页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="web/some.do">发起一个get请求</a>
</body>
</html>

MyController类代码
@Controller
public class MyController {

    @RequestMapping(value={"/web/some.do"})
    public String ReturnModelAndView(){
        return "view.jsp";
    }
}

view.jsp页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>view</title>
</head>
<body>
<h1>我是结果页</h1>
</body>
</html>

view.jsp文件的位置

在这里插入图片描述
点击index.jsp页面请求前,地址栏网址为
在这里插入图片描述

	点击后

在这里插入图片描述

结论
当你的访问地址没有以 / 开头,例如web/some.do,当你点击链接之后,访问的地址是当前页面的地址加上链接地址。
http://localhost:8080/springmvc_005_path/  +  web/some.do

3. 访问地址前面加 /

修改index.jsp代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="/web/some.do">发起一个get请求</a>
</body>
</html>
再次启动服务器

在这里插入图片描述

点击请求

在这里插入图片描述

修改index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/web/some.do">发起一个get请求</a>
</body>
</html>

再次发起请求

在这里插入图片描述

结论:
不添加 / 时,访问地址参考的地址是  http://localhost:8080 ,然后加上你的访问地址 /web/some.do ,缺少项目名,因此我们
可以添加	${pageContext.request.contextPath}来补全。

4. 使用base标签简化操作同时解决不加 / 可能引起的问题

base标签说明
<base> 标签为页面上的所有的相对链接规定默认 URL 或默认目标。
在一个文档中,最多能使用一个 <base> 元素。<base> 标签必须位于 <head> 元素内部。

代码展示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + request.getContextPath() + "/";
%>
<html>
<head>
    <title>Title</title>
    <base href="<%=basePath%>"/>
</head>
<body>
<%--<a href="${pageContext.request.contextPath}/web/some.do">发起一个get请求</a>--%>
<a href="web/some.do">发起一个get请求</a>
</body>
</html>
结果略,可以正常访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/979954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言练习41:深入理解字符串函数strlen strcpy strcat

深入理解字符串函数strlen strcpy strcat 模拟实现&#xff1a;”strlen strcpy strcat strlen strcat: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<assert.h> strlen 1.通过指针移动模拟 //int my_strlen(char* str) { // size_t c…

Unity之创建第一个游戏

一 Unity环境配置 1.1 Untity资源官网下载&#xff1a;https://unity.cn/releases 1.2 Unity Hub集成环境&#xff0c;包含工具和项目的管理 1.3 Unity Editor编辑器 1.4 Visual Studio 2022脚本编辑器 1.5 AndroidSKD&#xff0c;JDK&#xff0c;NDK工具&#xff0c;用于and…

Python之写文件操作(二十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

长风破浪会有时,直挂云帆济沧海!(工作室年会总结)

前言 我也是有段时间没写过总结性的博客了。最近是很忙的&#xff0c;尤其是年会那两天&#xff0c;我甚至可以说这是我这辈子目前最忙的两天。但这段经历还是很值得我记录下来的&#xff0c;也是给后面有需要的人提供的一些建议。我个人也是第一次筹办这种大型些的活动&#x…

SpringBoot_第六章(知识点总结)

目录 1&#xff1a;拦截器(Interceptor) 1.1&#xff1a;拦截器代码实现 1.2&#xff1a;拦截器源码分析和流程总结 2&#xff1a;过滤器(Filter)、自定义(Servlet)、监听器(Listener) 3&#xff1a;文件上传 3.1&#xff1a;文件上传代码实现 3.2&#xff1a;文件上传源…

部署Redis集群

文章目录 部署Redis集群1. 准备集群主机2. 启用集群功能3. 配置管理主机并创建集群3.1 配置管理主机 192.168.88.573.2 创建集群创建集群命令创建集群失败解决办法 3.3 查看集群信息查看集群统计信息查看集群详细信息 4. **测试集群及集群工作原理**4.1. 访问集群存取数据4.2 *…

Jmeter进阶使用指南-使用参数化

Apache JMeter是一个广泛使用的开源负载和性能测试工具。在进行性能测试时&#xff0c;我们经常需要模拟不同的用户行为和数据&#xff0c;这时候&#xff0c;参数化就显得尤为重要。此文主要介绍如何在JMeter中使用参数化。 什么是参数化&#xff1f; 参数化是一种将静态值替…

OpenCV之ellipse函数

ellipse函数用来在图片中绘制椭圆、扇形&#xff0c;有两个重载函数。 函数原型1&#xff1a; void cv::ellipse( InputOutputArray img,Point center,Size axes,double angle,double startAngle,double …

ORB-SLAM2算法14之局部建图线程Local Mapping

文章目录 0 引言1 概述2 处理队列中的关键帧3 剔除坏的地图点4 创建新地图点5 融合当前关键帧和其共视帧的地图点6 局部BA优化7 剔除冗余关键帧 0 引言 ORB-SLAM2算法7详细了解了System主类和多线程、ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成、ORB-SLAM2算法…

如何使用SpringCloud Eureka 创建单机Eureka Server-注册中心

&#x1f600;前言 本篇博文是关于使用SpringCloud Eureka 创建单机Eureka Server-注册中心&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&…

Jenkins实现基础CD操作

操作截图 在Jenkins里面设置通过标签进行构建 在Jenkins中进入项目&#xff0c;配置以下 将execute shell换到invoke top-level maven targets之前 在gitlab中配置标签 代码迭代新的版本 项目代码迭代 修改docker-compose.yml 提交新版本的代码 在Jenkins中追加新…

Java调用Web Service接口

方法1. 用IDEA生成相关代码调用方法。 在IDEA插件商店下载插件 然后新建一个Java项目 创建一个包来存放生成的代码&#xff0c;(点击一下)选中这个包&#xff0c;点击Tools 填入接口url&#xff0c;记住后面拼接“?wsdl”&#xff0c;选择生成方法&#xff0c;然后OK即可生…

如何重构大数据时代中小企业的信用评价指标体系?

在大数据时代&#xff0c;中小企业信用评价具有重要的意义。中小企业是经济社会发展的重要力量&#xff0c;他们对就业、经济增长和创新发挥着重要作用。然而&#xff0c;中小企业信用评价面临各种挑战&#xff0c;比如&#xff0c;中小企业融资难的原因就在于信用评价难&#…

nginx-QPS限制

漏桶算法&#xff1a; 通过nginx配置实现QPS限速。 #设置请求并发量 qps1&#xff0c;不设置burst&#xff0c;会同时处理并发的请求&#xff0c;但是由于我们只设置了1个qps&#xff0c;所以同一时间内的请求&#xff0c;只有一个是正常的&#xff0c;其他都是失败的。 http配…

andriod studio 手机模拟器中的文件导出方法

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录 阅读前请看一下&#xff1a;我是…

让你的编程之路更加顺畅——推荐一款前端编程神器

引子&#xff1a;在当今的数字化时代&#xff0c;编程已经成为一种不可或缺的技能。而前端开发&#xff0c;作为整个应用程序的“门面”&#xff0c;更是需要开发人员具备优秀的网页设计和编程能力。今天&#xff0c;我要向大家推荐一款专门为前端开发者打造的APP&#xff0c;它…

leetcode LCR 007 mid. 三数之和。对撞指针解法

题目 算法 对撞指针。双指针的一种&#xff0c;特点是一前一后&#xff0c;相向而行&#xff0c;两个指针相遇时为终点 code var threeSum function(nums) {let len nums.lengthnums.sort((a,b) > a-b)// 元素不足3个, 或 最小值>0 或 最大值<0&#xff0c;不会出…

插件_创蓝图文滑动验证码

目录 [1] 准备工作[2]使用1(1) 引入验证码js(2) 定义button引入js(3)在恰当的时机调起验证图(4) 校验之后的回调 [3] 使用2(1) 引入验证码js(2) 定义Captcha构造函数引入js(3)在恰当的时机调起验证图(4) 校验之后的回调 在进行低价秒杀时需要做一个人机校验防止机器抢购&#x…

切分支解决切不走因为未合并的路径如何解决

改代码的时候改做分支了&#xff0c;本来是在另一个分支上面改代码&#xff0c;结果改到另一个放置上面&#xff0c;然后想着使用git stash进行保存&#xff0c;然后切到另外一个分支再pop&#xff0c;结果不行。 报这个错误&#xff0c;导致切不过去&#xff0c;因为我这边pop…

SpringMVC常用注解、参数传递、返回值

目录 前言 一、常用注解 二、参数传递 ​编辑 1. 基础类型String类型 2. 复杂类型 3. RequestParam 4. PathVariable 5.RequestBody 6. RequestHeader 三、方法返回值 一&#xff1a;void 二&#xff1a;String 三&#xff1a;Stringmodel 四&#xff1a;ModelAndVi…