JSP是一种在服务器端运行的视图技术,您可以使用它来编写HTML/CSS/JS等模板文本.您可以使用JSP taglibs和EL来控制页面流和使用Java代码动态输出.这也涉及JavaScript内容/输出.JSP运行后,它基本上生成一个HTML页面并将其发送到客户端.您可以使用JSP动态输出后端数据,就好像它是JavaScript变量一样.例如:
<script>
    var foo = '${someBean.someProperty}';
</script>
Run Code Online (Sandbox Code Playgroud)
一旦HTML页面(内置CSS/JS)到达客户端(右键单击页面和查看源,你将看不到任何Java/JSP代码行),那么HTML将开始被解释,CSS将会开始应用,JS将开始执行.客户端没有Java/JSP代码的方法.如果您在客户端中查看生成的源,上面的示例现在看起来像:
<script>
    var foo = 'somePropertyValue';
</script>
Run Code Online (Sandbox Code Playgroud)
这样JavaScript就可以即时访问服务器端变量.
现在反过来了; 让JavaScript访问/调用Java/JSP代码的唯一方法是实际向服务器端发送HTTP请求.这可以通过多种方式完成:执行window.location同步GET请求,或执行form.submit()同步GET或POST请求,或执行XMLHttpRequest#send()异步请求(也称为Ajax).
或者,您也可以让JavaScript设置表单的(隐藏)输入字段,以便在用户提交表单时"自动"使用表单提交.无论哪种方式,服务器端的Java/JSP代码都能够以通常的请求参数方式访问JavaScript控制的值.
要了解有关Java/JSP和JavaScript之间隔离墙的更多信息,您可能会发现本文很有用.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           21084 次  |  
        
|   最近记录:  |