首页 javaWEB 如何理解Jsp中的basePath

如何理解Jsp中的basePath

  basehref   今天在写一个JSP网页的时候,href不能用了,所有href鼠标放上去前面现实的都是“http…

  basehref  

今天在写一个JSP网页的时候,href不能用了,所有href鼠标放上去前面现实的都是“http:///”,竟然有三个“/”,而且前面也没有显示“loc  alhost:8080”找了大半天找不出来,最后才发现不小心将Eclipse自动生成的下面两行代码误删了,

<%
Stringpath=request.getContextPath();
 StringbasePath=request.getScheme()+"://"
 +request.getServerName()+":"+request.getServerPort()+path+"/";
%>

 

 

我一直没有使用path和basepath,为什么会这样呢,最后终于发现,原来在<head></head>中,有一句

 

<basehref="<%=basePath%>">

 

使用了basepath,就是因为这句,所有的链接才不能使用了。看来问题就出在basehref上了,顾名思义,basehref不是就是基链接嘛。
 

 

 

上网搜索了一下,原来basehref不单单只有这么点作用,尤其在框架中。

 

 

 

资料如下:

 

base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记<head>与</head>之间。

 

你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。

 

重要属性:

 

href

 

设定前缀的链接地址

 

target

 

设定文件显示的窗口,同a标记中的target

 

简单例子:

 

<html>
<head>
<basehref="http://www.javaweb.top"target="_blank">
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>base标记</title>
<linkrel="ShortcutIcon"href="ani.CUR">
</head>
<body>
xiuxiu
api
</body>
</html>

 

 

 

当点了链接后,跳出的文件是

 

http://www.javaweb.top/xiuxiu

 

 

http://www.javaweb.top/api

 

,它就是在这些相对路径的文件前加上基链接指向的地址。如果目标文件中的链接没有指定target属性,就用base标记中的target属性。
 

 

 

常在框架结构中用,如左右两个框架,把左边的框架中文件里的连接都显示在右边的框架里。只要用base标记,把其target属性值写为右框架名称,这就不用再为左框架里的文件中的每一个连接都指定target属性。

 

 

 

当使用时,BASE元素必须出现在文档的HEAD内,在任何对外部源的引用之前。

 

此元素在Microsoft?InternetExplorer3.0的HTML中可用,在InternetExplorer4.0的脚本中可用。

 

此元素不会被渲染。

 

此元素不需要关闭标签。

 

这个标签的用处是解决编程时候的相对路径问题,比如有的cms,因为每页路径不一样,他就给你生成sddsds之类的,如果我在本地调试,肯定会在本地开一个目录的,这样就乱了,你可以把它生成相对路径,如sddsds,只要在head部分加上

 

<basehref=http://localhost/abc/>

 

即可。
 

所以说,这个标签主要为了解决web编程的时候一些相对路径的问题。

 

当然,这个base还有一个用法,如在head部分加上这么一行:<basehref=”_blank”>,就是默认所有链接在新窗口打开。

 

还可以这么理解:

 

这是设置基础路径的,basepath为变量

 

简单的静态网页的话你设置比如:

 

<basehref="http://www.javaweb.top">

 

,那你下面的href属性就会以你上面设的为基准,如:你现在就只需要写
 

—————————————————————————————————————————————————————————-

 

今天在写jQuery的例子时,测试时不生效。

 

jquerybase工程结构如下:
WebRoot
js
jquery-1.6.1.js
jsp
one.jsp
one.jsp部分代码如下:
<%
Stringpath=request.getContextPath();
 StringbasePath=request.getScheme()+"://"+request.
 getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
<title>MyJSP'one.jsp'startingpage</title>
<scripttype="text/javascript"src="../js/jquery-1.6.1.js">
</script>
最后把<basehref="<%=basePath%>">去掉后运行成功,原因就是当找jquery-1.6.1.js时,把<basehref="<%=basePath%>">
做为基础路径了,http://127.0.0.1:8088/jquerybase/../js/jquery-1.6.1.js此时是找不到的。
解决方法一:<basehref="<%=basePath%>">去掉
解决方法二:<scripttype="text/javascript"src="js/
jquery-1.6.1.js"></script>这时访问的路径就是http://
127.0.0.1:8088/
jquerybase/js/jquery-1.6.1.js,测试成功

 

 

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

nodejs 整理记录

nodejs 整理记录

下载包 https://blog.csdn.net/m0_59878114/article/details/120274...
websocket测试html

websocket测试html

<!DOCTYPE html> <html> <head> <meta cha...
bigdemical两个数比较大小

bigdemical两个数比较大小

/*int result = bigdemical1.compareTo(bigdemical2) result = -...
Beetl2.7 中文文档

Beetl2.7 中文文档

Beetl目前版本是2.7.23,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等...
纯CSS实现多个便签在一行展示,拖动滚动

纯CSS实现多个便签在一行展示,拖动滚动

div <h2>请注意需要在移动端预览,PC端拖拽无效果</h2> <div class=...
返回顶部