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代碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM