jsp页面路径获取:动态获取

当视图层(jsp页面)需要用到资源时,需要获取资源的路径,引用的资源一般不会在同一个目录下,这时如果采用传统路径去找对应的css,js文件,可以会采用../的方式,../代表上一层目录,如在jsp页面引用mybody.css文件。路径../../css/mybody.css就是当前jsp文件的上一层目录的上一层目录对应的image下的123.jpg文件。

<link href="../../css/mybody.css" type="text/css"/ rel="stylesheet">

但是这种方式显然不合理,需要一层层后退比较繁琐,而且如果同个jsp页面多处引用也不方便。所以实际开发一般很少用../来找资源。

那么我们可以采用绝对路径,如../../css/mybody.css我们可以采用"http://127.0.0.1:8080/crm/../../css/mybody.css"类似这样的路径。

<link href="http://127.0.0.1:8080/crm/css/mybody.css" type="text/css"/ rel="stylesheet">

但是这样又显得很复杂,所以我们可以利用<base/>标签,这样在之后的路径书写时都会基于这个base路径

    <base href="http://127.0.0.1:8080/crm">
    <link href=css/mybody.css" type="text/css"/ rel="stylesheet">

实际方法——动态获取路径:
协议,ip地址,端口号和应用名称都不应该写死,所以我们可以采用动态获取的方式来获取

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

request.getScheme():返回当前页面使用的协议;默认返回的是http,但是当SSL时返回https;

request.getServerName():返回当前页面所在的服务器的ip地址

request.getServerPort():返回当前页面所在的服务器使用的端口,如8080

request.getContextPath():返回当前应用的名字,如/crm

根据以上方法结合base标签就可以简单方便地实现路径的获取了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethan_Zhuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值