JSP,HTML页面中的地址问题。

1.在jsp , html中使用的地址, 都是在前端页面中的地址,都是相对地址

2.带/项目根路径访问。不带/去看是否有base,有去拼接base地址,没有去拼接当前页面地址。

3.地址分类:

3.1.绝对地址

带有协议名称的是绝对地址, http://www.baidu.com , ftp://202.122.23.1

3.2.相对地址

没有协议开头的, 例如 user/some.do , /user/some.do
相对地址不能独立使用,必须有一个参考地址。 通过参考地址+相对地址本身才能指定资源。
张三同学, 1班有张三, 2班也有张三

3.3.参考地址
1) 在你的页面中的,访问地址不加 “/”
访问的是: http://localhost:8080/ch06_path/index.jsp
路径: http://localhost:8080/ch06_path/
资源: index.jsp

在index.jsp发起 user/some.do请求,访问地址变为 http://localhost:8080/ch06_path/user/some.do
当你的地址 没有斜杠开头,例如 user/some.do , 当你点击链接时, 访问地址是当前页面的地址
加上链接的地址。

http://localhost:8080/ch06_path/ + user/some.do

加上base标签

问题:
路径:	  http://localhost:8080/ch06_path/user/
资源:   some.do
在index.jsp在 user/some.do ,就变为 http://localhost:8080/ch06_path/user/user/some.do

解决方案:

1.加入${pageContext.request.contextPath}
2.加入一个base标签, 是html语言中的标签。 表示当前页面中访问地址的基地址。
你的页面中所有 没有“/”开头的地址,都是以base标签中的地址为参考地址
使用base中的地址 + user/some.do 组成访问地址

动态获取base

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" +
            request.getServerName() + ":" + request.getServerPort() +
            request.getContextPath() + "/";
//    base带斜杠
%>
<html>
<head>
    <title>Title</title>
    <base href="<%=basePath%>" />
</head>
2)在你的页面中的,访问地址加 “/”
访问的是: http://localhost:8080/ch06_path/index.jsp
路径: http://localhost:8080/ch06_path/
资源: index.jsp

点击 /user/some.do, 访问地址变为 http://localhost:8080/user/some.do
参考地址是 你的服务器地址, 也就是 http://localhost:8080
如果你的资源不能访问:

加入${pageContext.request.contextPath}
<a href="${pageContext.request.contextPath}/user/some.do">发起user/some.do的get请求</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkFun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值