qingxinblog

问题:下面是一段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代码。

 

分类:

技术点:

相关文章:

  • 2022-01-12
  • 2021-12-16
  • 2021-11-05
  • 2021-06-13
  • 2021-07-03
  • 2021-08-14
  • 2021-04-21
  • 2021-11-30
猜你喜欢
  • 2021-11-30
  • 2021-10-16
  • 2021-11-30
  • 2021-12-10
  • 2021-07-31
  • 2021-04-09
  • 2021-04-28
相关资源
相似解决方案