jsp页面中的<base>标签的作用

刚开始尝试ajax,就碰到了一个问题,捣鼓了半天都没结果。老是说XMLHttpReq.status==404。也就是说请求的页面没找到。百思不解。我的jsp页面和请求的文件data.txt都放在webroot路径下的ajax目录,因此在请求url时我用的路径是url="ajax/data.txt".然后用XMLHttpReq.open("POST",url,true);XMLHttpReq.send();将路径传给服务器。原来认为是提交方法不对,但无论我用大写POST还是小定post或者是get、head方法,XMLHttpReq.status均是404,还是没找到路径。我就纳闷了,为什么同样的路径,在之前写的一个ajax例子中可以运行,到了这里就不行了呢?(之前写的ajax例子是我照抄书上的一个范例,也都放在ajax路径下,而现在这个jsp是我自己仿照原来那个写的,想加深一下印象)。实在没办法了,就一个一个的将原来那个ajax范例拷贝过来,看看到底是哪里出了问题。这下,真的找到问题所在了。

 原来那个ajax范例的jsp页面是myeclipse自动生成的template,里面定义了basePath变量,然后在<base>标签里引入:

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

<base href="http://blog.163.com/yaxctgu@126/blog/<%=basePath%>">

而我自己写的那个却没定义这个<base>。到网上查了一下,才知道<base>标签的作用就是用来指定该页面的绝对路径的。只要定义了它,无论这个页面移动到了哪里,它的路径都basePath变量所指的路径。在本例中,basePath=http://localhost:8080/web_test/,其中web_test是该工程名。因此如果定义了<base>标签,那么在引入url时就要加上data.txt文件所在的文件夹名称:ajax/data.txt 由于我自己写的jsp页面里没有定义<base>标签,那么因为data.txt和jsp是放在同一个文件夹里,即都在ajax文件夹里,所以不需引用ajax/,直接定义url=data.txt即可。

  相信很多地方都用到了这个标签,如引入image等,也会碰到路径的问题。以后要注意了

本文转自百度博客:http://hi.baidu.com/%B1%B1%B3%BD%BB%CA%D3%B0/blog/item/f5351f31028df5f21b4cff4f.html/cmtid/c4fab70d196902e6ab645791

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值