引用图片显示到前端的策略

引用图片显示到前端的策略:
在这里插入图片描述
①最直接的方式–>使用本地绝对路径,如:

D:\EclipseJEE\JavaEEProject\JavaEE-Test3.1\WebContent\img\name.png

注意:绝不提倡,这样虽然能在本地浏览器(Eclipse浏览器)上显示,但在网页浏览器上无法加载,因为网页服务器是在Tomcat的指定路径(工程下)下执行的。从网页浏览器中复制该图片地址为about:blank。
②使用EL表达式表示当前的相对路径,示例:${pageContext.request.contextPath }/img/name.png
注意:此时网页浏览器中图片可见,复制该图片地址为

http://localhost:8880/JavaEE-Test3.1/img/name.png

,于是我们便有了策略③。
③src=”工程名/文件夹名/图片全名”
<img src="JavaEE-Test3.1/img/name.png"/>,理想很美好,现实很残酷。看似可行的路径,然而在浏览器上还是加载失败,复制其图片路径为

http://localhost:8880/JavaEE-Test3.1/jsp/JavaEE-Test3.1/img/name.png

,和②中正确的图片路径相比多了jsp/JavaEE-Test3.1;
尝试着改成<img src="img/name.png"/>后,依然加载不出来,复制其图片路径为

http://localhost:8880/JavaEE-Test3.1/jsp/img/name.png

恍然大悟!原来jsp程序默认执行路径是

http://localhost:8880/JavaEE-Test3.1/jsp

,而我们的图片资源不在jsp文件夹下,而在另一个img文件夹下。因此无论怎样修改src路径都无济于事(EL表达式除外),故不得不从程序的执行路径下手,从而有了策略④。
④在jsp文件首部通过Java程序片,拼接一个基地址basePath:

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

或者

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

然后将这个basePath以base标签<base href="<%=basePath %>"/>
嵌入中,从而指定基址路径为:

http://localhost:8880/项目名/

此例为

http://localhost:8880/JavaEE-Test3.1

,这正是我们所想要的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值