jsp&el&jstl

來源:互聯網
上載者:User

標籤:有用   翻譯   單行   總結   mil   center   att   發展   會話   

一、JSP技術1.jsp指令碼和注釋

jsp指令碼:

1)<%java代碼%> ----- 內部的java代碼翻譯到service方法的內部

2)<%=java變數或運算式> ----- 會被翻譯成service方法內部out.print()

3)<%!java代碼%> ---- 會被翻譯成servlet的成員的內容

 

jsp注釋:  不同的注釋可見範圍是不同

1)Html注釋:<!--注釋內容--> ---可見範圍 jsp源碼、翻譯後的servlet、頁面 顯示html源碼

2)java注釋://單行注釋  /*多行注釋*/ --可見範圍 jsp源碼 翻譯後的servlet

3)jsp注釋:<%--注釋內容--%> ----- 可見範圍 jsp源碼可見

 

2.jsp運行原理-----jsp本質就是servlet(面試)

jsp在第一次被訪問時會被Web容器翻譯成servlet,在執行

過程:

第一次訪問---->helloServlet.jsp---->helloServlet_jsp.java---->編譯運行

PS:被翻譯後的servlet在Tomcat的work目錄中可以找到

 

 

3.jsp指令(3個)

jsp的指令是指導jsp翻譯和啟動並執行命令,jsp包括三大指令:

1)page指令 --- 屬性最多的指令(實際開發中page指令預設)

屬性最多的一個指令,根據不同的屬性,指導整個頁面特性

格式:<%@ page 屬性名稱1= "屬性值1" 屬性名稱2= "屬性值2" ...%>

常用屬性如下:

language:jsp指令碼中可以嵌入的語言種類

pageEncoding:當前jsp檔案的本身編碼---內部可以包含contentType

contentType:response.setContentType(text/html;charset=UTF-8)

session:是否jsp在翻譯時自動建立session

import:匯入java的包

errorPage:噹噹前頁面出錯後跳轉到哪個頁面

isErrorPage:當前頁面是一個處理錯誤的頁面

 

2)include指令

頁麵包含(靜態包含)指令,可以將一個jsp頁麵包含到另一個jsp頁面中

格式:<%@ include file="被包含的檔案地址"%>

 

3)taglib指令

在jsp頁面中引入標籤庫(jstl標籤庫、struts2標籤庫)

格式:<%@ taglib uri="標籤庫地址" prefix="首碼"%>

 

 

4.jsp內建/隱式對象(9個)----- 筆試

jsp被翻譯成servlet之後,service方法中有9個對象定義並初始化完畢,我們在jsp   指令碼中可以直接使用這9個對象

名稱

類型

描述

out

javax.servlet.jsp.JspWriter

用於頁面輸出

request

javax.servlet.http.HttpServletRequest

得到使用者請求資訊,

response

javax.servlet.http.HttpServletResponse

伺服器向用戶端的回應資訊

config

javax.servlet.ServletConfig

伺服器配置,可以取得初始化參數

session

javax.servlet.http.HttpSession

用來儲存使用者的資訊

application

javax.servlet.ServletContext

所有使用者的共用資訊

page

java.lang.Object

指當前頁面轉換後的Servlet類的執行個體

pageContext

javax.servlet.jsp.PageContext

JSP的頁面容器

exception

java.lang.Throwable

表示JSP頁面所發生的異常,在錯誤頁中才起作用

 

(1)out對象

out的類型:JspWriter

out作用就是想用戶端輸出內容----out.write()

out緩衝區預設8kb 可以設定成0 代表關閉out緩衝區 內容直接寫到respons緩衝   器

 

 

(2)pageContext對象

jsp頁面的內容物件,作用如下:

page對象與pageContext對象不是一回事

1)pageContext是一個域對象

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttrbute(String name)

 

pageContext可以向指定的其他域中存取資料

setAttribute(String name,Object obj,int scope)

getAttribute(String name,int scope)

removeAttrbute(String name,int scope)

findAttribute(String name)

---依次從pageContext域,request域,session域,application域中獲   取屬性,在某個域中擷取後將不在向後尋找

 

四大範圍的總結:

page域:當前jsp頁面範圍

request域:一次請求

session域:一次會話

application域:整個web應用

 

2)可以獲得其他8大隱式對象

例如: pageContext.getRequest()

pageContext.getSession()

 

5.jsp標籤(動作)

1)頁麵包含(動態包含):<jsp:include page="被包含的頁面"/>

2)請求轉寄:<jsp:forward page="要轉寄的資源" />

 

靜態包含與動態包含的區別?

 

 

 

二、EL技術1.EL 運算式概述

EL(Express Lanuage)運算式可以嵌入在jsp頁面內部,減少jsp指令碼的編寫,EL      出現的目的是要替代jsp頁面中指令碼的編寫。 

2.EL從域中取出資料

EL最主要的作用是獲得四大域中的資料,格式${EL運算式}

EL獲得pageContext域中的值:$(pageContextScope.key);

EL獲得request域中的值:$(request.key);

EL獲得session域中的值:$(session.key);

EL獲得application域中的值:$(application.key);

EL從四個域中獲得某個值$(key);

---同樣是依次從pageContext域,request域,session域,application域中      擷取屬性,在某個域中擷取後將不在向後尋找

 

 

3.EL的內建對象

pageScope,requestScope,sessionScope,applicationScope

 ---- 擷取JSP中域中的資料

param,paramValues   - 接收參數.

header,headerValues  - 擷取要求標頭資訊

initParam                     - 擷取全域初始化參數

cookie                         - WEB開發中cookie

pageContext               - WEB開發中的pageContext.

 

$(pageContext.request.contextPath)

相當於

<%=pageContext.getRequest().getContextPath%>

獲得WEB應用的名稱

三、JSTL技術1.JSTL概述

JSTL(JSP Standard Tag Library),JSP標準標籤庫,可以嵌入在jsp頁面中使用標籤的形式完成商務邏輯等功能。jstl出現的目的同el一樣也是要提到jsp頁面中的指令碼代碼。JSTL標準標準標籤庫有5個子庫,但隨著發展,目前常使用的是他的核心庫

標籤庫

標籤庫的URI

首碼

Core

http://java.sun.com/jsp/jstl/core

c

I18N

http://java.sun.com/jsp/jstl/fmt

fmt

SQL

http://java.sun.com/jsp/jstl/sql

sql

XML

http://java.sun.com/jsp/jstl/xml

x

Functions

http://java.sun.com/jsp/jstl/functions

fn

 

2.JSTL下載與匯入

JSTL下載:

從Apache的網站下載JSTL的JAR包。進入          “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網址下載       JSTL的安裝包。jakarta-taglibs-standard-1.1.2.zip,然後將下載好的JSTL安裝包      進行解壓,此時,在lib目錄下可以看到兩個JAR檔案,分別為jstl.jar和standard.jar。      其中,jstl.jar檔案包含JSTL規範中定義的介面和相關類,standard.jar檔案包含用於     實現JSTL的.class檔案以及JSTL中5個標籤庫描述符檔案(TLD)

 

3.JSTL核心庫的常用標籤

1)<c:if>標籤

 

<c:if test="${count==10 }">        xxxx</c:if>

 

2)<c:for>標籤

    <!-- forEach類比    for(int i=0;i<5;i++) {        System.out.println(i);    }     -->     <c:forEach begin="0" end="5" var="i">         ${i }     </c:forEach>          <!-- forEach類比增強for迴圈 productList--List<Product>          for(Product pro : productList) {             syso(pro.getName);         }     -->     <c:forEach items="productList" var="pro">         ${pro.pname }     </c:forEach>

 

jsp&el&jstl

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.