您现在的位置是:首页 > 网页设计心得 > 程序人生程序人生
Web项目中的路径问题
胜于蓝2019-07-25【程序人生】人已围观
简介访问路径与资源名称通常的URL资源访问路径由两部分构成:访问路径与资源名称。资源名称指的是要访问资源的直接名称,如show.jsp,或与要访问资源存在映射关系的间接名称,如show.do
访问路径与资源名称
通常的URL资源访问路径由两部分构成:访问路径与资源名称。资源名称指的是要访问资源的直接名称,如show.jsp,或与要访问资源存在映射关系的间接名称,如show.do。而访问路径,则是通过该路径则可以定位到指定的资源,即在URL资源访问路径中除了资源名称以外的其他部分。 一般情况下,在URL访问路径中,最后一部分为资源名称,而其他部分则为访问路径。
根据“访问路径是否可以独立完成资源准确定位”的评判标准,可以将访问路径分为绝对路径与相对路径。
绝对路径
绝对路径,是指根据给出的访问路径可以准确定位到资源的路径。例如,你要告诉对方你所在的位置,你说:我现在郑州火车站A地铁口处。这就是个绝对地址,听者根据你所述的地址,可以准确找到你。 而对于计算机中Web应用的绝对路径,则是指带访问协议的路径。例如下面的路径就是一个带有http访问协议的绝对路径。
http://127.0.0.1:8080/primary/index.jsp
相对路径
相对路径,是指仅根据访问路径无法准确定位资源的路径。相对路径必须要结合其参照路径才可组成为可以准确定位资源的绝对路径。参照路径的不同,所形成的可以准确定位资源的绝对路径也是不同的。在进行资源访问时,必须要将相对路径转换为绝对路径才可完成资源的准确定位。 例如,你要告诉对方你现在的位置,你说:我在火车站的正门门口。这就是个相对地址。因为很多城市都有火车站,每个火车站也都有正门。当对方不知道你在哪个城市时,他是无法准确定位你的。当然,你之所以不说是哪个城市,是因为这里存在一个默认的参照路径:与听者在同一个城市。听者会将你所说的相对地址,自动转换成一个绝对地址:与听者在同一个城市的火车站正门门口。 在Web应用中,相对路径的写法有两种:一种是以斜杠开头的相对路径,一种是不以斜杠开头的相对路径。根据相对路径是否以斜杠开头,且出现的文件所在位置的不同,其默认的参照路径是不同的。这也是相对路径最容易出错的地方:确定参照路径。
(1)以斜杠开头的相对路径
以斜杠开头的相对路径,根据路径所在文件所处位置的不同,分为两种:前台路径与后台路径。
A.前台路径
所谓前台路径是指,有浏览器解析执行的代码中所包含的路径。例如,html、css、js中的路径,及jsp中静态部分的路径。像html及jsp中的静态部分中的<img src=""/>、<a href=""></a>、<form action=""></form>
等;像css中的background:img("")
等,像js中的window.location.href=""
等,都属于前台路径。 前台路径的参照路径是Web服务器的根路径,即http://127.0.0.1:8080/
B.后台路径
所谓后台路径是指,由服务器解析执行的代码及文件中所包含的路径。例如,java代码中的路径、jsp文件动态部分(java代码块)中的路径、xml文件中的路径(xml文件是要被java代码加载入内存,并由java代码解析的)等。 后台路径的参照路径是Web应用的根路径,如http://127.0.0.1:8080/primary/
C.后台路径特例
对于后台路径的参照路径有一个特例:当代码中使用response的sendRedirect()方法进行重定向时,其参照路径不是web应用的根路径,而是web服务器的根路径。 例如执行response.sendRedirect("/show.jsp");
将会报404错误。因为其参照路径是Tomcat的根,而非当前项目的根。所以若要使用重定向,要么写为无斜杠的相对路径:response.sendRedirect("show.jsp");
要么在路径上添加上项目名称:response.sendRedirect(request.getContextPath + "/show.jsp");
(2)不以斜杠开头的相对路径
不以斜杠开头的路径,无论是前台路径,还是后台路径,其参照路径都是当前资源的访问路径,而不是当前资源的保存路径。
Tags:
很赞哦! ()
上一篇:为什么要使用Tomcat集群
下一篇:使用代理处理反爬抓取微信文章
随机图文
-
web安全之文件上传漏洞攻击与防范方法
一、 文件上传漏洞与WebShell的关系文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方 -
通过PHP与Python代码对比浅析语法差异
一、背景人工智能这几年一直都比较火,笔者一直想去学习一番;因为一直是从事PHP开发工作,对于Python接触并不算多,总是在关键时候面临着基础不牢,地动山摇的尴尬,比如在遇到稍微深 -
胜于蓝推荐|常用的CSS命名规范大总结,非常实用(收藏)
CSS命名由小写的英文单词或组合命名,单词与单词之间通过“-”连接,常用的CSS命名规范有文本命名规范,页面结构命名规范,导航命名以及功能命名等。 CSS 命名一般采用小