刚开始尝试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范例拷贝过来,看看到底是哪里出了问题。这下,真的找到问题所在了。 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 而我自己写的那个却没定义这个<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 |
jsp页面中的<base>标签的作用
最新推荐文章于 2021-08-30 10:22:57 发布