从JS访问ServletContext

时间:2011-03-25 15:11:41

标签: java javascript jsp servlets

我想出了如何抓住Java端的ServletContext看thread,但我仍然不确定如何在JS中获取它。我正在为JS看这个explanation。我是否必须将ServletContext作为请求对象传递(我能看到一个示例)还是可以在JS中访问它?任何帮助非常感谢。

4 个答案:

答案 0 :(得分:3)

如果您将JavaScript视为网页的一部分,则根本无法访问它。页面加载后,JavaScript正在浏览器上执行。此时,ServletContext早已不复存在。

您可能想要做的是基于ServletContext生成JavaScript。这只是在JavaScript中将您想要的内容打印为通过创建它的JSP呈现到页面中的常量,就像HTML等一样。此时它不是JavaScript,它只是文本中的其他内容。 JSP页面。

答案 1 :(得分:2)

除非您正在使用服务器端javascript,否则无法获得ServletContext的句柄,因为它在浏览器中根本不存在。但是,您可以做的是从ServletContext中读取所需的属性,并在JSP / Servlet等中创建动态Javascript。

答案 2 :(得分:0)

JS在浏览器内部在客户端运行。可以从JSP / Servlet中编写的Java代码中访问容器中可用的Java对象。

无法直接从JS中访问ServletContext对象 - 因为JS运行的进程和上下文与ServletContext对象所在的VM / Context不同。

从您的问题看来,您似乎想要访问JS可访问的对象数据 - 您可以通过使用像DWR(Direct Web Remoting)这样的JS-Java桥来实现这一目标 - 请查看链接 - http://directwebremoting.org/dwr/index.html

答案 3 :(得分:0)

Application隐式对象是javax.servlet.ServletContext的一个实例。它主要用于获取初始化参数和共享属性&它们在整个JSP应用程序中的值,这意味着应用程序隐式对象设置的任何属性都可用于所有JSP页面。 在我们的JSP页面中,我们在标签

附带的javascript函数中使用了以下内容
<script type="text/javascript">  
somefunction(){
var somevar = <%=application.getAttribute("attributeName")>
}
</script>