jsp代码和js代码执行的顺序

问题:下面是一段jsp页面代码,按理说应该先输出js代码,因为先调用,再输出jsp代码,但是我在电脑上运行过,为什么只有js代码? 把js代码注释后才会显示jsp代码的输出? 这是为什么那?难道这两种代码的输出互相排斥?

<html>

<head>

<title></title>

<script>

 function loading()

{ document.write("JavaScript输出"); }

</script>

</head>

<body onLoad="loading()">

 <%="jsp输出"%>

</body>

</html>

 

解答:

<%="jsp输出"%>这是jsp中的嵌入java程序,是在服务器端运行的
<script>
...
</script>这是页面脚本,是在浏览器里面执行的 
在访问页面时,首先在服务器端执行java程序,然后将结果
<html>
<head>

<title></title>

<script>
 function loading(){
     document.write("JavaScript输出");
 }

</script>
</head>

<body onLoad="loading()">
jsp输出

</body>
</html>
发送的浏览器中,然后浏览器在页面加载后执行onload事件,document.write("JavaScript输出")将页面内容更新为Javascript输出

如果你想在jsp输出后面追加内容,应该使用document.body.innerHTML += "<br/>JavaScript输出"
因为document.write会清空现有的页面内容

 

另外搜到的信息:先运行的是java代码,然后运行js。 jsp的代码是在 服务器端运行的   js是在客户端浏览器运行的

jsp要先被编译生成一个 servlet   也就说 最终输出到前台的 是一个 html的流

从而肯定是jsp的代码先执行

 

js可以使用java的变量,但是java不可以使用js的变量,一个jsp页面的编译顺序是,先编译java代码,然后再编译js代码。

 

posted @ 2013-10-15 16:48  晴心  阅读(15481)  评论(0编辑  收藏  举报