JSP、EL的快速入門

一、什麼是JSP?

  HTML+Java代碼+jsp標籤=jsp。

  在靜態頁面上添加動態信息就可以了,如果是Servlet還需要一行一行的輸出。

  通常在前臺開發人員給出靜態頁面後,後臺開發人員只需要在靜態頁面上添加信息即可,而不用再使用Sevlet一行一行的去輸出了。


二、JSP的真身:Servlet

  當客戶請求的是JSP頁面的時候,服務器會查看JSP對應的Servlet是否存在,如果存在,那麼直接調用Sevlet的service()方法來處理請求。如果不存在,那麼服務器會先把JSP編譯成.java文件,然後再把.java文件編譯成.class文件,然後調用service()方法。當這個jsp頁面,第二次處理請求時,就直接調用真身的sercie()方法了。

wKiom1jIiueQ8RIeAAA8ik_6opE332.png

  JSP是servlet,JSP與我們編寫的Servlet有什麼不同呢?通常我們編寫的Servlet就不要輸出HTML代碼了,而是轉發到JSP頁面。

  即Servlet不再負責顯示頁面,而由JSP來完成。Servlet專注於控制層的內容。

  在"真身"中,所有的靜態內容會被輸出。例如<html>是靜態內容,它對應"真身"中的out.write("<html>");


三、JSP的腳本元素

  JSP中的Java代碼塊就是最常見的動態信息,它分爲三種:

    <%...%>:代碼片段。代碼片段會原模原樣的出現在“真身”中,不會有變動。正常的Java代碼都可以在代碼片段中出現。

    <%=...%>:表達式。表達式會在“真身”中輸出,例如:<%=a%>,對應真身中的out.print(a)。只能出現變量、常量,以及有返回值的方法調用,而不能出現分號!即在out.println()的合法參數都可以。

      <%=a%>對應out.print(a);

      <%="a"%>對應out.print("a");

      <%=fun()%>對應out.print("fun()");

      <%=a;%>對應out.print(a;);出錯

      <%=System.out.print("hello")%>對應out.print("System.out.print("hello")"),出錯。

    <%!...%> :聲明。聲明對應“真身”中的屬性和方法。


四、EL

  JSP2.0要把HTML和CSS分離、要把HTML和JavaScript分離、要把Java代碼塊替換成標籤。標籤的好處就是非Java人員都可以使用。

  JSP2.0--純標籤頁面,即:不包括<%...%>、<%=...%>、<%!...%>

  EL(Expression Language)是一門表達式語言,它杜繼英<%=...%>。我們知道在JSP頁面中,表達式會被輸出,所以EL表達式也會被輸出。

  EL表達式的格式::${...},例如${1+2}。

  


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