JSP页面文件中base标记用法实例分析

本文实例分析了JSP页面文件中base标记用法。分享给大家供大家参考,具体如下:

我们在用IDE工具生成JSP页面时通常都包含下面的两段代码,

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<head>
<base href="<%=basePath%>">
</head>

它们绝对不是无用代码,详细如下:

base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记<head>与</head>之间。你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。

重要属性:

href---设定前缀的链接地址

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

简单例子:

<html>
<head>
<base href=http://localhost target="_blank">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>base标记</title>
<link rel="Shortcut Icon" href="ani.CUR">
</head>
<body>
<a href="x.htm" target="_self">x.html</a>
<a href="y.htm">y.html</a>
</body>
</html>

当点了链接后,跳出的文件是http://localhost/x.htm或http://localhost/y.htm,它就是在这些相对路径的文件前加上基链接指向的地址。如果目标文件中的链接没有指定target属性,就用base标记中的target属性。

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

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

另外,如果页面转向某个Servlet,而Servlet里又是forward到的某个jsp页面,如果这时写相对路径就应该先找到Servlet的路径,也就是web.xml中配置的url-pattern中的路径,如:假设有个x.jsp放在webapplication根目录下,而主页index.jsp是提交到servlet上去的,由Serlet来分发forward到x.jsp,Servlet的url配置如下:

代码如下:

<url-pattern>/servlet/TestServlet</url-pattern>

那么Servlet完成forward转向后,如果没有<base href="<%=basePath%>">   x.jsp中<script type="text/javascript" src="script/check.js"></script>就会失效,因为Servlet的访问路径为http://localhost/webapp/servlet/TestServlet那么web服务器会到http://localhost/webapp/servlet/script/下去找check.js此时这里肯定是没有这个文件的,所以,如果遇到这样的情况建议使用绝对路径就不会有错

代码如下:

<script type="text/javascript" src="<%=path%>/script/check.js"></script>

希望本文所述对大家JSP程序设计有所帮助。

(0)

相关推荐

  • JSP由浅入深(11)—— 标记库

    JSP 1.1提出了一种扩展的JSP标志的方法,这种方法命名为"标志库".这些库允许另外的一些类似于jsp:include 或者jsp:forward的标志,但是它们不是以jsp:为前缀的并且还附件一些特性. 为了介绍标志库,在本教程中我们使用Blazix标志库作为例子.这个标志库只能用在Blazix服务器中,这个服务器你可以免费下载. 每一个标志库都有它自己的标志库特殊的文档.为了使用标志库,你可以使用"taglib" directive来指出标志库"d

  • jsp之c标签用法实例分析

    本文实例讲述了jsp之c标签用法.分享给大家供大家参考,具体如下: 核心标签库 它是JSTL中的核心库,为日常任务提供通用支持,如显示和设置变量.重复使用一组项目.测试条件和其他操作(如导入和重定向Web内容).Core标签按功能可分为4种类型: 1 变量维护: (1)<c:set>:设置变量值和对象属性.语法如下: 复制代码 代码如下: <c:set value="值" var="变量名" scope="变量的作用域" tar

  • jsp base标签与meta标签学习小结

    复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!-- 定义jsp的编码,还有引入的java文件 --> <% String path = request.getContextPath(); //得到当前的项目名字. String basePath = request.getScheme()+"

  • jsp自定义标签用法实例详解

    本文实例讲述了jsp自定义标签用法.分享给大家供大家参考.具体如下: 在JSP中有一种机制,可以让你在JSP页面中插入与HTML类似的标记.本文介绍JSP定制标记的基本概念和构成,以及如何开发和应用JSP定制标记. 什么是标记 使用HTML语言我们可以这样去编辑我们的网页: <HTML> <HEAD> <TITLE> HELLO WORLD </TITLE> </HEAD> <BODY> HELLO WORLD </BODY&g

  • JSP中param标签用法实例分析

    本文实例分析了JSP中param标签用法.分享给大家供大家参考,具体如下: Jsp中param标签的使用 <jsp:param>操作被用来以"名-值"对的形式为其他标签提供附加信息.它和<jsp:include>.<jsp:forward>.<jsp:plugin>一起使用,方法如下: 复制代码 代码如下: <jsp:param name="paramName" value="paramValue&qu

  • JSP页面中如何用select标签实现级联

    做查询页面,查询条件比较多的时候往往会涉及到级联.举个简单的例子,拿教务系统来说,我们要查询教学计划信息,查询条件是入学批次.学生层次(专升本.高升专).专业.课程. 它们之间有什么级联关系呢?入学批次影响学生层次(某个入学批次可能只有专升本或者高升专一个学生层次).专业.课程,学生层次影响专业.课程,专业又影响课程.也就是说当选择入学批次时,学生层次.专业和课程的下拉框会局部刷新,选择学生层次时,专业和课程的下拉框会局部刷新,选择专业时,课程的下拉框也会局部刷新. 我们当然不希望已经选择的操作

  • JSP自定义标签rtexprvalue属性用法实例分析

    本文实例讲述了JSP自定义标签rtexprvalue属性.分享给大家供大家参考.具体如下: 其实以前也有写过自定义标签, 但是没有注意到过<rtexprvalue>的用法, 最近这几天又用上自定义标签了, 突然发现<rtexprvalue>的用法是有讲究的. rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. 当在<attribute>标签里指定<rtexprvalue>true<

  • JSP自定义分页标签TAG全过程

    首先我们需要在WEB-INF/tld/目录下创建page.tld文件 <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>page</short-name> <u

  • JSP页面文件中base标记用法实例分析

    本文实例分析了JSP页面文件中base标记用法.分享给大家供大家参考,具体如下: 我们在用IDE工具生成JSP页面时通常都包含下面的两段代码, <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %

  • jsp中自定义标签用法实例分析

    本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文件如下: 首先是要写×.tld文件,当项目随着服务器启动的时候,会检查项目中有没有*tld文件. 写的tld文件 <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://ja

  • jsp编程中session的用法实例分析

    本文实例讲述了jsp编程中session的用法.分享给大家供大家参考,具体如下: TTP协议是无状态的,即信息无法通过HTTP协议本身进传递.为了跟踪用户的操作状态,ASP应用SESSION对象.JSP使用一个叫HttpSession的对象实现同样的功能.HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面.Session的信息保存在服务器端,Session的id保存在客户机的cookie中.事实上,在许多服务器上,如果浏览器支持的话它们就使用cook

  • java中response对象用法实例分析

    本文实例讲述了java中response对象用法.分享给大家供大家参考,具体如下: <jsp:forward>动作元素用于运行时在服务器端结束当前页面的执行,并从当前页面转向指定页面. 使用response对象的setHeader()方法可以设置页面的自动刷新时间间隔.实现每隔60秒重新加载本页面的语句为: 复制代码 代码如下: response.setHeader("refresh",60); 而实现3秒后浏览器加载新页面http://www.jb51.net的语句为:

  • SeaJS中use函数用法实例分析

    本文实例讲述了SeaJS中use函数用法.分享给大家供大家参考,具体如下: 有了 define 等模块定义规范的实现,我们可以开发出很多模块.但光有一堆模块不管用,我们还得让它们能跑起来.在 SeaJS 里,要启动模块系统很简单: <script src="path/to/sea.js"></script> <script> seajs.use('./main'); </script> seajs.use 用来在页面中加载模块.通过 us

  • ASP.NET中Dictionary基本用法实例分析

    本文实例讲述了ASP.NET中Dictionary基本用法.分享给大家供大家参考,具体如下: //Dictionary位于System.Collections.Generic命名空间之下 /* * 使用Dictionary之前必须引用System.Collections.Generic命名空间: * 使用Dictionary时必须声明其键和值的数据类型(可以为任意类型): */ //声明实例化Dictionary为dic System.Collections.Generic.Dictionary

  • python开发中module模块用法实例分析

    本文实例讲述了python开发中module模块用法.分享给大家供大家参考,具体如下: 在python中,我们可以把一些功能模块化,就有一点类似于java中,把一些功能相关或者相同的代码放到一起,这样我们需要用的时候,就可以直接调用了 这样做的好处: 1,只要写好了一个功能模块,就可以在以后调用,代码的重用就可以体现出来了 2,功能写好了以后,不会发生错误.如果一个相同的功能,我们在一个模块中写了一遍,在另外的模块中又写了一遍......这样我们难免保证我们在写的过程中不发生错误. 但是我们如果

  • Android编程中Perferences的用法实例分析

    本文实例讲述了Android编程中Perferences的用法.分享给大家供大家参考,具体如下: 浏览手机的/data/data/目录中的各个package的目录,经常会看到有一个shared_prefs文件夹,里面有一个包名_preferences.xml文件,这个文件就是要说的主角,下面简称他为配置文件: 这个文件类似于一个配置文件的角色,记录应用的一些属性值,比如如果你的应用提供了指导用户使用的向导功能,那么估计肯定会提供选项让用户来关闭这个功能,那么你可以将这个开关放置在这个文件里,下次

  • PHP中curl_setopt函数用法实例分析

    本文实例讲述了PHP中curl_setopt函数用法.分享给大家供大家参考.具体分析如下: curl_setopt函数是php中一个重要的函数,它可以模仿用户的一些行为,如模仿用户登录,注册等等一些用户可操作的行为哦. bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值 伪造登录 主站wap登录和discuz论坛wap登

随机推荐