簡體   English   中英

如何防止執行 jsp 小腳本?

[英]How do I prevent jsp scriptlet from execution?

當我運行程序時,條件中的兩個語句都被執行了

<script>
    if (true) {
       <%System.out.println("true");%>
    } else {
       <%System.out.println("false");%>
    }
</script>

Java 和 JavaScript 完全不同——盡管它們的名稱相似。 它們與“痛苦”和“繪畫”這兩個詞有很多共同之處。

  • JSP 代碼在服務器中執行,在用戶收到頁面之前。
  • 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM