绝对路径${pageContext.request.contextPath}的使用

${pageContext.request.contextPath}

首先,${pageContext.request.contextPath}使用了EL表达式的写法,EL 全名为Expression Language,所有EL都是以 ${ 为起始、以 } 为结尾的。
示例: ${sessionScope.user.sex} 表示从Session的范围中,取得用户的性别。

假若依照之前JSP Scriptlet的写法如下:
User user =(User)session.getAttribute(“user”);
String sex =user.getSex( );

两者相比较之下,可以发现EL 的语法比传统JSP Scriptlet 更为方便、简洁。

${pageContext.request.contextPath}是JSP中取得绝对路径的方法,等价于<%=request.getContextPath()%> 。
也就是取出部署的应用程序名,即获取当前的项目的名称

比如我的项目名称是authManagement_ssm_web,在浏览器中访问系统登录页面的路径为:http://localhost:8888/authManagement_ssm_web/login.jsp,

${pageContext.request.contextPath}或<%=request.getContextPath()%>取出来的值就是 /authManagement_ssm_web , 而 "/"代表的含义就是http://localhost:8888

我的项目中的几个使用的例子:
首先下面是项目结构:
在这里插入图片描述
使用示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中
在这里插入图片描述
在这里插入图片描述

绝对路径和相对路径的区别

在HTML里只要涉及文件的地方(如超级链接、图片等)就会涉及绝对路径与相对路径的概念。

  1. 绝对路径
    绝对路径是指文件在硬盘上真正存在的路径

    例如“bg.jpg”这个图片是存放在硬盘的“D:\001\002\003\004”目录下,那么 “bg.jpg”这个图片的绝对路径就是“D:\001\002\003\004\bg.jpg"。如果要使用绝对路径指定网页的背景图片就应该使用以下语句:
    < body backround=“D:\001\002\003\004\bg.jpg” >

  • 使用绝对路径的缺点

    事实上,在网页编程时,很少会使用绝对路径,如果使用 “D:\001\002\003\004\bg.jpg” 来指定背景图片的位置,在自己的计算机上 浏览可能会一切正常,但是上传到Web服务器上浏览就很有可能不会显示图片了。因为上传到Web服务器上时,可能整个网站并没有放在Web服务器的D盘, 有可能是E盘或F盘。即使放在Web服务器的D盘里,Web服务器的D盘里也不一定会存在D:\001\002\003\004”这个目录,因此在浏览网页时是不会显示图片的。

  1. 相对路径

为了避免这种情况发生,通常在网页里指定文件时,都会选择使用相对路径。所谓相对路径,就是相对于自己的目标文件的位置

  • 接上例,如果“main.jsp” 也在“D:\001\002\003\004”目录下,在“main.jsp”里引用了“bg.jpg”图片,由于“bg.jpg”图片相对于“main.jsp”来说,是在同一个目录的,则只要在“main.jsp”文件里使用以下代码: < body background=“bg.jpg”>
    只要这两个文件的相对位置没有变(即还是在同一个目录内),那么无论上传到Web服务器的哪个位置,在浏览器里都能正确地显示图片。

  • 如果“main.jsp”文件所在目录为“D:\001\002\003\004”,而“bg.jpg”图片所在目录为“D:\001\002\003\004\img”,那么“bg.jpg”图片相对于“main.jsp”文件来说,是在其所在目录的“img”子目录里,则引用图片的语句应该为:< body background=“img/bg.jpg”>

注:相对路径使用 “/” 字符作为目录的分隔字符,而绝对路径可以使用“\”或“/”字符作为目录的分隔字符。由于“img”目录是“004”目录下的子目录,因此在“img”前不用再加上“/”字符。

在相对路径里常使用 “. ./”表示上一级目录。如果有多个上一级目录,可以使用多个“. ./”。

  • 如果“main.jsp”文件所在目录为“D:\001\002\003\004”,而“bg.jpg”图片所在目录为“D:\001\002\003”,那 么“bg.jpg”图片相对于“main.jsp”文件来说,是在其所在目录的上级目录里,则引用图片的语句应该为: < body background=". ./bg.jpg">

  • 如果“main.jsp”文件所在目录为“D:\001\002\003\004”,而“bg.jpg”图片所在目录为“D:\001\002\003\img”,那么“bg.jpg”图片相对于“main.jsp” 文件来说,是在其所在目录的上级目录里的“img”子目录里,则引用图片的语句 应该为:
    < body background=" . ./img/bg.jpg">

参考:
https://www.cnblogs.com/zhangminghui/p/4122821.html
https://blog.csdn.net/sun9528/article/details/72935178/
https://www.cnblogs.com/zshibo/p/8011514.html
https://blog.csdn.net/mllovehk/article/details/83003677

仅用于个人学习,记录,侵删。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值