[英]How do I prevent jsp scriptlet from execution?
當我運行程序時,條件中的兩個語句都被執行了
<script>
if (true) {
<%System.out.println("true");%>
} else {
<%System.out.println("false");%>
}
</script>
Java 和 JavaScript 完全不同——盡管它們的名稱相似。 它們與“痛苦”和“繪畫”這兩個詞有很多共同之處。
服務器不處理任何 JSP 內容,除了 JSP 標簽,或已知的標簽庫,如 JSTL。 該<script>
元素及其內容只是按原樣添加到最終頁面,而無需解釋或執行。
換句話說, if (true)
對服務器沒有任何意義。 它忽略 JavaScript,只執行<%
… %>
部分。
當頁面最終傳送到瀏覽器時,源將包含以下內容:
<script>
if (true) {
} else {
}
</script>
…因為 JavaScript 沒有在服務器端以任何方式處理。 HTML 頁面中的 JavaScript 在瀏覽器中運行,而不是在服務器上運行。
你可能想要這樣的東西:
<%
if (true) {
System.out.println("true");
} else {
System.out.println("false");
}
%>
並不是說上面的代碼不需要在<script>
元素中,事實上將它放在一個元素中是沒有意義的——因為<script>
包含 JavaScript,這是服務器端的 Java 代碼,而不是 JavaScript。
當我運行程序時,條件中的兩個語句都被執行了
<script>
if (true) {
<%System.out.println("true");%>
} else {
<%System.out.println("false");%>
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.