JSP、EL的快速入門

1、什麼是JSP?html

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

  在靜態頁面上添加動態信息就能夠了,若是是Servlet還須要一行一行的輸出。服務器

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


2、JSP的真身:Servletide

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

wKiom1jIiueQ8RIeAAA8ik_6opE332.png

  JSP是servlet,JSP與咱們編寫的Servlet有什麼不一樣呢?一般咱們編寫的Servlet就不要輸出HTML代碼了,而是轉發到JSP頁面。htm

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

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


3、JSP的腳本元素
ci

  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")"),出錯。

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


4、EL

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

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

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

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

相關文章
相關標籤/搜索