使用JSP

你寫的JSP最終會變成一個servlet在Web應用中運行。它與其他servlet非常相似,只不過這個servlet類會由容器爲你編寫。

容器拿到你在JSP中寫的代碼,把這些代碼轉換爲一個servlet類源文件,然後再把這個源文件編譯爲Java Servlet類。

下面代碼是一個Web應用:

先寫一個普通計數器類:Counter.java

package foo;
public class Counter{
    private static int count;

    public static synchronized int getCount(){
        count++;
        return count;
    }
}

再寫JSP頁面:BasicCounter.jsp

<html>
<body>
    The page count is:
    <%
    out.println(Counter.getCount());
    %>
</body>
</html>

運行頁面報500,因爲Counter類在foo包中,但是JSP不知道。

解決方法:導包

<%@ page import="foo.*" %>

或在代碼中使用完全限定類名

out.println(foo.Counter.getCount());

 

Java代碼放在帶百分號的尖括號中間:<%和%>

指令會爲元素開始記號再增加一個字符:@,<%@開始的JSP代碼,應該知道這是一個JSP指令。

上面的JSP代碼還是有out.println()語句。引入JSP,部分原因就是爲了避免大量的println()語句出現,有JSP表達式元素,表達式元素會自動打印放在標記之間的內容。

<%= Counter.getCount()%>//裏面不加;

<%
    out.println(Counter.getCount());
    %>

作用相同

因爲:容器拿到你在<%=和%>之間鍵入的所有內容,會把它作爲參數傳遞給打印語句。上面的表達式會轉換成下面這行代碼:

out.println(Counter.getCount());

你如果放上分號,就成爲下面這樣,就是錯誤的:

out.println(Counter.getCount(););
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章