`
wangyanlong0107
  • 浏览: 502150 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

HTML中相对URL的选取

 
阅读更多

转自:http://blog.csdn.net/gashero/article/details/1483283

HTML中的相对URL绝对是个艺术,其变化多端简直几近于C语言的缓冲区溢出。下面谈一下偶在调试中遇到的几个相对URL的问题。

1、真正的相对路径
据个例子,假如你有一个调试用的服务器地址为"http://localhost"。其下还有几个子功能。包括"http://localhost/hello"和"http://localhost/hello/test"。这时就可以考虑使用相对路径了。假如在/hello页面中要链接到/hello/test页面去。可以在链接标签中使用href="test"就可以正确的链接过去。因为在/hello页的当前URL是/hello,所以对于test的链接就转换为/hello/test。

2、全局相对路径
其实这一段的所谓相对路径,仅仅是指不含有主机名的路径而已。主要特征就是在相对URL的最前面是含有"/"的。这样的路径就是以URL的跟路径开始计算的。比如有一个页面/hello/test2,需要链接到/hello/test。按照方法一的写法应该是<a href="../test">,虽然还是看的懂,但总不是那么简洁。所以可以考虑使用全局相对路径。如下<a href="/hello/test">,这样是以URL的根路径开始寻找的,可以很好的找到需要的路径。
全局相对路径是一种很好的方式,可以实现在一个WEB应用的部署内部很好的链接,也不需要为了".."而晕倒。问题就是,如果一个应用的部署从"/"变成了"/app"之类的,就会出问题了。而这种情况在Tomcat等等不太适合在根路径上配置服务的服务器就比较常见了。

在javaee中一般用request.getContextPath()获取上下文根,后跟相对路径,然后浏览器会在前面自动加上协议,ip,端口信息。

3、框架中的相对URL

框架中的相对URL就比较容易理解了。比如在一个框架中制定另一个框架页面需要打开的相对URL,这时这个相对URL就是基于本框架页面的。比如左侧框架页面正在显示的页面是/hello/test.html,而右侧框架页面正在显示/hi/test.html。则在左侧框架页面的一个连接<a href="test2.html" target=XXX>在右侧框架页面打开连接的话,则是打开/hello/test2.html。

4、框架中的JavaScript的相对

这个就比较恶心了,在左侧框架页面中的一个连接上使用事件来处理JS代码。JS代码中直接引用右侧框架页面对象,并指定相对URL,则这时的相对URL是基于原来的目的框架页面的。在这种情况中是很容易与第3条相混淆的,应该注意。

分享到:
评论

相关推荐

    基于JAVA语言提取网站内部URL的算法

    对于相对URL,可以使用Jsoup的`absUrl()`方法将其转换为绝对URL。此外,为了确保爬取的合法性,需要遵循网站的robots.txt规则,并处理可能出现的异常和错误。 通过这个基于JAVA的URL提取算法,我们可以高效地从HTML...

    jsoup中文帮助文档

    例如,当解析文档时,相对 URL 会自动转换为绝对 URL。 10. 程序示例:获取所有链接数据修改 以下示例展示如何获取页面上的所有链接并修改它们的 `href` 属性: ```java Elements links = doc.select("a[href]"); ...

    HtmlAgilityPack简单提取网页例子

    在这个示例中,我们首先创建了一个`HttpClient`实例,用来从指定的URL获取HTML内容。然后,我们创建了一个`HtmlDocument`对象,并使用`LoadHtml`方法加载HTML内容。接下来,我们通过XPath查询语句提取网页标题,这...

    Jquery实现http地址自动变成可访问的url链接插件

    这个插件的实现可能还会包括一些优化,例如处理相对 URL、避免重复处理同一个 URL,或者添加对 ftp、mailto 等其他协议的支持。此外,为了适应各种情况,开发者可能还需要考虑如何处理 HTML 内的特殊字符和嵌套标签...

    java 解析 html

    在处理HTML时,需要注意HTML的不规范性,因为实际网页可能存在嵌套不正确、属性缺失等情况,Jsoup在这方面表现得相对宽容。 在你的例子中,压缩包文件"WeatherReport"可能是包含示例HTML文件或者相关数据的资源。...

    w3lib-1.0.tar.gz

    `url.resolve()`函数可以解决相对URL与绝对URL之间的关系,使得在处理多个页面链接时更加方便。`url.urljoin()`则可以合并基URL和相对URL,生成完整的URL。对于URL规范化,`url.defrag()`和`url.quotes()`等函数也...

    jsoup解析html所需包1.7.3

    - **链接处理**:JSoup能解析并处理HTML中的链接,包括相对和绝对URL,便于链接的标准化和重写。 - **安全性**:JSoup可以清理HTML,移除潜在的恶意脚本和样式,确保在处理用户输入时的安全性。 在实际开发中,...

    jsoup解析HTML

    1. **连接到URL**:首先,我们需要创建一个`Jsoup`对象并连接到目标HTML URL。例如: ```java Document doc = Jsoup.connect("http://example.com").get(); ``` 这将下载网页内容并返回一个`Document`对象。 2....

    JSOUP的中文文档

    - `Jsoup.parse(String html, String baseUri)`:此方法与前一个类似,但增加了`baseUri`参数,用于处理相对URL,确保它们在解析后能正确转换为绝对URL。 2. **遍历和访问文档内容**: - DOM方法:你可以通过DOM...

    JavaScript获得页面base标签中url的方法

    在Web开发中,`&lt;base&gt;`标签是HTML文档的一个基础部分,它定义了文档中所有相对URL的基准URL。因此,如果HTML页面中包含了`&lt;base&gt;`标签,那么页面中所有的相对路径链接都会基于这个`&lt;base&gt;`标签的href属性所指定的URL...

    基于Java的实例源码-HTML解析器 jsoup.zip

    4. **链接处理**:`jsoup`可以解析和提取文档中的链接,包括相对和绝对URL,这在爬虫或数据抓取场景中非常有用。 5. **数据提取**:你可以方便地从`Document`或`Element`中提取所需数据,如文本、属性值,甚至是...

    2010最新解析html开源项目jsoup源码及api下载及jsoup.jar

    7. **链接处理**:解析和验证链接,处理相对URL。 **应用场景** jsoup适用于多种场景,如: 1. **数据抓取**:从网页中抽取特定信息,如新闻标题、评论、价格等。 2. **网站自动化**:自动填写表单、点击按钮,...

    Jsoup文档帮助_中文

    Jsoup 可以解析和处理 URL,如在解析 HTML 时转换相对 URL 为绝对 URL。此外,`doc.baseUri()` 可以获取文档的基础 URL。 6. **数据修改** - **设置属性值**:`element.attr("attrName", "newValue")` 可以更改...

    前端css+html+布局笔记

    选取属性值中包含指定内容的元素 兄弟元素选择器 选取后一个兄弟元素 前一个 + 后一个 选取后边所有的兄弟元素 前一个 ~ 后边所有 子元素的伪类 :first-child 寻找父元素的第一个子元素,在所有的子元素...

    使用java的html解析器实现自动重复抓取任意网站页面归类.pdf

    2. **抓取和解析HTML**:可以从URL、文件或字符串中获取和解析HTML内容。 3. **CSS选择器和DOM查询**:支持使用DOM的查询和CSS选择器查找和提取数据。 4. **处理HTML属性、元素和文本**:允许修改、添加或删除HTML...

    HTMLparser 测试代码

    在测试中,我们需要确保此方法能处理相对URL和绝对URL,同时还要考虑没有`href`属性的`&lt;a&gt;`标签,以及可能存在的空链接。 在学习HTMLparser测试代码的过程中,以下是一些关键知识点: 1. **HTML元素选择和遍历**:...

    HTML解析器 jsoup.7z

    4. **链接处理**:`jsoup`可以解析和规范化URL,处理相对链接,甚至跟随链接进行进一步的请求。这对于构建Web抓取程序非常有用。 5. **安全的HTML清理**:`jsoup`提供了一种安全的方式来清理不安全的HTML,移除恶意...

    scrapy中xpath示例用法

    - 处理相对路径链接:使用`response.urljoin()`将相对URL转换为绝对URL。 - 在多个XPath表达式间切换以处理不同的数据结构。 - 使用`Selector.remove()`或`Selector.extract()`来过滤不需要的元素。 - 跟踪链接...

    url-scrape:从充满html文件的目录中抓取并计数网址

    对于相对路径的链接,我们需要结合HTML文件所在的目录来构造完整的URL。 3. **域名提取与计数**:对每个提取到的URL,我们可以使用`urlparse`模块(在Python 3中是`urllib.parse`)来分解URL,获取其域名部分。然后...

    HTML解析器 jsoup资料

    - jsoup能自动处理相对URL,将其转换为绝对URL,这对于处理包含多个页面的网站非常有用。 - 它还可以帮助检测并修复损坏的链接。 4. **数据提取** - 提供了一系列方法,如`text()`、`html()`和`attr()`,用于...

Global site tag (gtag.js) - Google Analytics