关于jsp页面写pageContext.request.contextPath和request.getContextPath()等路径问题

我们在写jsp页面的时候,经常见到下面几个关于路径的写法:

${pageContext.request.contextPath}

属于EL表达式的写法

<%=request.getContextPath()%>

属于jsp的写法
作用都是取出部署的应用程序名,比如说一个地址http//:localhost:8080/hotel/login.jsp,如果我们需要用EL表达式写就是${pageContext.request.contextPath}/hotel/login.jsp,也可以写成<%=request.getContextPath()%>/hotel/login.jsp,这样都是没与问题的。
通常情况下,我们所写项目考虑到维护性,采用MVC思想,针对JSP主要是视图层代码,其他的代码最好不出现在其中
因此,我们习惯在项目jsp中采用EL表达式。

在运行我们发现了<%=request.getContextPath()%>和${pageContext.request.contextPath}获取的结果都是项目名(上下文),
如果我们想要获取项目的绝对路径和端口号我们有什么办法呢?
一般页面顶部都写:

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

这个语句是用来拼装当前网页的相对路径的,
request.getSchema() 可以返回当前页面使用的协议,就是上面例子中的“https”。
request.getServerName() 可以返回当前页面所在的服务器的名字,就是上面例子中的“localhost"。
request.getServerPort() 可以返回当前页面所在的服务器使用的端口,就是80。
request.getContextPath() 可以返回当前页面所在的应用的名字,就是上面例子中的demo1。
这四个拼装起来的 basePath ,就是当前应用的跟路径了,
组合起来就是:https://localhost:80/demo1/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值