JSP获取页面路径

ActionContext、ServletContext、pageContext的区别?
ActionContext是当前的Action的上下文环境,通过ActionContext可以获取到request、session、ServletContext等与Action有关的对象的引用; 
ServletContext是域对象,一个web应用中只有一个ServletContext,生命周期伴随整个web应用; 
pageContext是JSP中的最重要的一个内置对象,可以通过pageContext获取其他域对象的应用,同时它是一个域对象,作用范围只针对当前页面,当前页面结束时,pageContext销毁, 生命周期是JSP四个域对象中最小的。 


jsp中可用${pageContext.request.contextPath} 获取文件路径
<%= this.getServletContext().getContextPath() %>

js文件中获取${pageContext.request.contextPath}
一般从 JSP文件中,可以直接使用 ${pageContext.request.contextPath}非常方便的获得当前页面的路径,用来处理被 Apache2代理之后出现 URL变化的问题,比如增加了某些前缀,方便转发,即使是 JSP内嵌的 JavaScript脚本,也是可以如此操作。但是如果是一个独立的 JavaScript文件,通过

XHTML

<script src="LinkGame/js/LinkGame.js"></script>
1
<script src="LinkGame/js/LinkGame.js"></script>
这样的方式引入,则在 JavaScript文件内部是无法直接调用 ${pageContext.request.contextPath}获取前缀的,因为 ${pageContext.request.contextPath}是需要 JSP文件处理的变量,而对于独立的 JavaScript文件,默认是不做任何处理的。

因此这个变量只能是通过某个全局变量传递到 JavaScript文件中。
目前比较有效的实现方法是通过设置一个隐藏的文本框的方式来处理。

XHTML

<input id="PageContext" type="hidden" value="${pageContext.request.contextPath}" />

<input id="PageContext" type="hidden" value="${pageContext.request.contextPath}" />
JavaScript文件中获取这个变量的方法如下:

Java

$(document).ready(function() {
    var pageContext = g("PageContext").value;
});

$(document).ready(function() {
    var pageContext = g("PageContext").value;
});

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值