请问老师<base>标签时干什么的

请问老师<base>标签时干什么的

请问老师<base>标签时干什么的

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

如下是w3c官网对<base>标签的解释,所以当你设置了base标签之后,实际上会改变url中的路径,设置了<base href="<%=basePath%>">这行代码是为页面上的所有链接规定默认地址或默认目标,

http://img1.sycdn.imooc.com//climg/5bcdac840001a7a005940285.jpg

譬如下面的代码,设置了<base href="<%=basePath%>">之后,原本是需要通过http://localhost8080/项目名称/LoginServlet才能访问的servlet,修改之后就可以直接使用LoginServlet进行访问了,这就是<base>标签的作用,为所有页面的链接规定默认的目标,如果我的建议解决了你的问题,请采纳,祝学习愉快~

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>课程后台管理系统</title>
</head>
<a href="LoginServlet">aaaa</a>
</html>


提问者 冲哥_ 2018-10-22 19:33:40
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta charset="utf-8">
<title>播放列表查看</title>
<script type="text/javascript" src="resources/js/jquery-1.4.2.js">

</script>
</head>

<body>
	<table>
		<tr>
			<td >
			<input type="button" value="流行歌曲" class="a" name="song1">
			</td>
			<td>
			<input type="button" value="经典歌曲" class="b" name="song2">
			</td>
			<td>
			<input type="button" value="摇滚歌曲" class="c" name="song3">
			</td>
		</tr>
			
	</table>
	
	<span id="aa">11</span><br><span id="bb">22</span><br><span id="cc">33</span><br>
	
	
</body>
<script>
	
	$(".a").click(function() {
		//单击按钮触发Ajax事件
		
		$.ajax({
			url:"<%=basePath%>/ClickServlet",
			type:"post",
			data : {
                name : $("input[name=song1]").val(),
                },
			dataType:"json",
			success:function(result){
				 
				
				$("#aa").text("a"); $("#bb").text("b"); $("#cc").text("c");

			}
		});
	});
	
		$(".b").click(function(){
		//单击按钮触发Ajax事件
		$.ajax({
			url:"<%=basePath%>/ClickServlet",
			type:"post",
			data : {
                name : $("input[name=song2]").val(),
                },
			dataType:"json",
			success:function(result){
				$(".#aa").text("f"); $("#bb").text("e"); $("#cc").text("d");
			}
		});
	});
	
		$(".c").click(function(){
		//单击按钮触发Ajax事件
		$.ajax({
			url:"<%=basePath%>/ClickServlet",
			type:"post",
			data : {
                name : $("input[name=song3]").val(),
                },
			dataType:"json",
			success:function(result){
				$("#aa").text("g"); $("#bb").text("h"); $("#cc").text("i");
			}
		});
	});
	
</script>
</html>
package com.imooc.servler;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONObject;

@WebServlet("/ClickServlet")
public class ClickServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String name=request.getParameter("name");
		System.out.println(name);
		JSONObject jsonObject = new JSONObject();
		response.getOutputStream().write(jsonObject.toString().getBytes("utf-8"));
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		doGet(request, response);
	}

}

l老师,上面的代码中如果我把  <base href="<%=basePath%>">  单击之后就会有任何变化,这是什么原因呢?

这题是Ajax入门的2-3自由编程

  • 不是很理解同学的意思呢,把 <base href="<%=basePath%>"> 单击之后就会有任何变化这句话不是很懂,同学可否详细的描述一下,方便老师具有针对性的回答,祝学习愉快~
    2018-10-23 09:52:58
  • 提问者 冲哥_ 回复 chrismorgen #2
    把<base href="<%=basePath%>"> 这句去掉就不会有变化
    2018-10-24 10:12:58
  • chrismorgen 回复 提问者 冲哥_ #3
    是的,去掉也是可以的,你添加之后只不过是将页面中的访问路径变成了web全路径,不过通过自己创建的路径也是可以访问的。祝学习愉快~
    2018-10-24 11:38:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师