jsp中客户端与服务器端的代码执行关系
通过下面两个问题学习一下这个知识点:(下面代码都是写到jsp中的)
第一个实验:
<% int i;%>
<script>
alert(i);
</script>
上面的脚本是无法正确执行的('i'未定义),int i;这句代码是在服务器端执行的,而alert(i)是浏览器在客户端执行的,这个要搞清楚。可以通过查看页面源代码理解一下。
第二个实验:
<script>
var ii;
</script>
<%System.out.print(ii)%>
上述代码同样无法正确执行:System.out.println(ii)这句是服务器端执行的,执行完成后将结果返回到客户端后才轮到var ii 执行 他的执行顺序优先于script脚本中的var ii执行。所以jsp将无法编译;
第三个问题:
<script>
var ii = '<% out.print(5 + 5)%>';
alert(ii)
</script>
上述代码可以正确执行,首先服务器端代码out.print(5+5)将会首先执行,将执行结果out.print(10)返回到界面,通过查看源代码可以知道服务器返回的结果在客户端的最终效果为:var ii = 10