JSP/EL/JSTL學習筆記

jsp:

  java 服務器頁面java

  做用:將內容的生成和信息的展現相分離web

  執行原理:運行在服務器端,本質上是一個servlet,被編譯成class面試

jsp腳本格式:sql

  <%..%> java代碼片斷apache

  <%=..%> 輸入表達式 至關於out.print();數組

  <%!..%> 生命成員瀏覽器

jsp的指令緩存

  三大指令:page指令、include指令、taglib指令服務器

    page指令:cookie

        language     JSP的語言屬性,默認java,目前也只有java

        contentType   設置瀏覽器默認的打開的時候的編碼

        pageEncoding  設置JSP文件保存到硬盤,以及翻譯成Servlet保存到硬盤的編碼格式

        import      設置JSP中引入其餘的類

        extends      設置JSP被翻譯成Servlet後繼承的類,

        autoFlush    設置自動刷出緩存

        buffer      JSP緩衝區的大小,默認8kb

        session     默認值是true,設置是否能夠直接使用session對象

        isELIgnored   設置JSP是否忽略EL表達式,默認false,JSP中能夠使用EL表達式

        isErrorPage      設置JSP頁面中出現錯誤應該如何處理

        errorPage    設置JSP頁面中出現錯誤應該如何處理  

    include指令:用於引入其餘的頁面

      file屬性:屬性中不能使用變量,不能傳遞參數

      <%@ include file="logo.jsp" %>

    taglib指令:用於在JSP中引入標籤庫

      <%@ taglib url="" prefix="" %>

JSP的內置對象

  內置對象:JSP中能夠直接使用的對象

  九大內置對象(面試):

    request,response,session,application,page,pageContext,out,config,exception

JSP的四個域對象

  pageContext  頁面範圍

  request     請求範圍

  session     回話範圍

  application     應用範圍

JSP的動做標籤

  語法:<jsp:動做標籤 屬性="" />  使用該標籤可以簡化代碼的編寫,儘可能少在JSP中使用<%%>

  <jsp:forward page="/demo.jsp"></jsp:forward>

  <jsp:include page="/demo.jsp"></jsp:include>

    動態包含&靜態包含

      靜態包含至關於代碼的copy,最終被翻譯誠意Servlet解釋執行的,動態包含包含了其餘頁面運行的結果,最終翻譯成多個Servlet執行的

EL 標籤

  EL Expression Language  表達式語言

  語法:${ EL 表達式}

    JSP中儘可能少的使用<%%>代碼塊,使用EL和JSTL替換頁面中<%%>  

  用途

    1.獲取數據

    2.EL執行運算

    3.得到經常使用web開發對象

    4.調用java中的函數

EL獲取四個域範圍中的值

  獲取普通值

  獲取數據的數據

  獲取List集合

  獲取Map集合

[]和.區別:[]獲取帶有下標的數據、list等  .獲取一個對象的屬性,若是屬性中包含了特殊字符,必須使用[]不能使用.

 

demo

  <%

    pageContext.setAttribute("pname","zhangsan");

    request.setAttribute("rname","lisi");

    session.setAttribute("sname","wangwu");

    application.setAttribute("aname","zhaner");

  %>

----------------傳統方式取值-----------------------------

<%= pageContext.getAttribute("pname")%>

<%= request.getAttribute("pname")%>

<%= session.getAttribute("pname")%>

<%= application.getAttribute("pname")%>

----------------EL 表達式取值----------------------------

${ pageContext.pname }

${ request.rname }

${ session.sname }

${ application.aname } 

demo獲取數組數據

  <%

    String[] arr = {"zhangsan","lisi","wangwu"};

    pageContext.setAttribute("arr",arr)

  %>

  %{ arr[1] }

demo獲取List集合數據

  <%

    List<String> list = new ArrayList<String>();

    list.add("zhangsan");

    list.add("lisi");

    list.add("wangwu");

  %>

${ list[1] }

demo獲取Map集合

  <%

  Map<String,String> map = new HashMap<String,String>();

  map.put("a","zhangsan");

  map.put("b","wangwu");

  map.put("c","lisi");

  %>

${ map["a"] }

demo獲取JavaBean中的數據

  <%

  Person p = new person();

  p.setId(1);

  p.setName("zhangsan");

  p.setPassword("root");

  pageContext.setAttribute("person",p);

  %>

  ${ person.name }

EL標籤還能夠執行運算,包括算術運算和邏輯運算

EL得到WEB開發的經常使用的對象(EL的內置對象)

11個  

   ${pageScope}

   ${requestScope}

   ${sessionScope}

   ${applicationScope}

   ${param}      至關於request.getParameter

   ${paramValues}     至關於request.getParameterValues  

   ${header}      得到請求頭  一個key對應一個value

   ${headerValues}   得到請求頭 一個key對應多個value

   ${initParam}     得到初始化參數

   ${cookie}      得到cookie信息

   ${pageContext}   至關於pageContext對象

JSTL標籤庫

  JSTL是一個不斷完善的開放源代碼的JSP標籤庫,是由apache的Jakarta小組維護的,從Servlet2.0開始

做用:結合EL替換頁面中的<% %>

使用JSTL標籤庫

  JSTL五大標籤庫:core、fmt、xml、sql、fn

  引入標籤庫

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    經常使用標籤

      c:set

      c:if

      c:forEach

      c:choose

相關文章
相關標籤/搜索