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


1

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

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

XHTML




JavaScript文件中获取这个变量的方法如下:

Java

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

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

你可能感兴趣的:(JAVA)