Jsp開發常用標籤總結

Jsp開發常用標籤總結


JSP全名爲Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它[1]  是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件,後綴名爲(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。
它實現了Html語法中的java擴展(以 <%, %>形式)。JSP與Servlet一樣,是在服務器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在於服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基於組件的設計,使基於Web的應用程序的開發變得迅速和容易。 JSP(JavaServer Pages)是一種動態頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。
Java Servlet是JSP的技術基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。

1 Jsp標籤作用

Jsp標籤主要在jsp頁面執行java代碼,用於替換jsp腳本。

2 Jsp標籤分類

Jsp內置標籤(動作標籤): 不需要導入標籤庫

JSTL標籤庫:  需要導入標籤庫

自定義標籤: 需要導入標籤庫


3 Jsp內置標籤

<jsp:forward/>  轉發標籤

  用於轉發

<jsp:param/>   參數標籤

<jsp:incude/>  包含標籤

用於包含其他頁面

 

注意:

1)其原理是包含與被包含的頁面先各自翻譯成獨立的java源文件,然後再運行時合併再一起。(先翻譯再合併),這叫動態包含

 

  ==== 靜態包含  vs   動態包含====

1)原理不一樣

a)靜態包含(先合併再翻譯) 

b)動態包含(先翻譯再合併)

2)語法不一樣

a)靜態包含( includ指令:  <%@include%>

b)動態包含 (include標籤: <jsp:include />

3)參數傳遞不同

a)靜態包含不能傳遞參數

b)動態包含可以向被包含頁面傳遞參數

4 JSTL標籤

jstl java starardard tag libarary  java標準標籤庫

 

以前: jsp2.0以前jstl不屬於java規範。屬於第三方的工具。需要導入jar

現在: jsp2.0 jstl納入javaee規範。不需要導入jar包。

 

JSTL標籤庫分類:

1)核心標籤庫 (core/c  ) 使用最頻繁的

2)國際化互標籤庫(fmt

3)EL函數庫 (fn

4)數據庫標籤庫(sql)基本不用

5)Xml標籤庫(x)基本不用

5 JSTL使用步驟

1)確保jstl的支持jar包已經導入到項目中

2)在jsp頁面的頂部導入標籤庫

<%@taglib uri="tld文件的路徑" prefix="標籤庫縮寫"%>

 

tld文件: 標籤庫的聲明文件(每套標籤都有一個tld文件)


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

3)使用標籤庫中的標籤

<c:set></c:set>

 

6 核心標籤庫(開發中經常使用)

保存數據:

<c:set></c:set>

獲取數據

    <c:out value=""></c:out>

單條件判斷:

    <c:if test=""></c:if>

多條件判斷

   <c:choose></c:choose>

    <c:when test=""></c:when>

    <c:otherwise></c:otherwise>  

數據遍歷

  <c:forEach></c:forEach>

    <c:forTokens items="" delims=""></c:forTokens>

7 自定義標籤

自定義標籤是用戶定義的JSP語言元素。當JSP頁面包含一個自定義標籤時將被轉化爲servlet,標籤轉化爲對被 稱爲tag handler的對象的操作,即當servlet執行時Web container調用那些操作。

8 自定義標籤步驟

1)編寫一個標籤處理器程序,繼承SimpleTagSupport類(使用自定義標籤顯示ip


public class ShowIpTag extends SimpleTagSupport{


/**

 * 執行標籤

 */

@Override

public void doTag() throws JspException, IOException {

//得到request對象

PageContext pageContext = (PageContext)this.getJspContext();

HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();


//得到客戶ip

String ip = request.getRemoteHost();


//寫出瀏覽器

pageContext.getOut().write("自定義標籤實現獲取客戶端IP地址:"+ip);

} 

}

 

2)在WEB-INT目錄下建立tld文件,例如test.tld,內容如下:


<?xml version="1.0" encoding="UTF-8" ?>

 

<taglib xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"

    version="2.1">

 

  <!-- 標籤庫版本 -->

  <tlib-version>1.1</tlib-version>

  <!-- 標籤庫的縮寫:簡單名稱 -->

  <short-name>test</short-name>

  <!-- tld文件的唯一標記 -->

  <uri>http://gz.test.cn</uri>

 

  <!--標籤定義  -->

  <tag>

  <!-- 標籤名稱 -->

    <name>showIp</name>

   <!-- 標籤對應的處理器程序 -->

    <tag-class>gz.test.c_tag.ShowIpTag</tag-class>

    <!-- 標籤體輸出格式 -->

    <body-content>scriptless</body-content>

  </tag>

</taglib>

 

3)在jsp頁面中導入自定義標籤庫,再使用標籤庫中的標籤


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://gz.itcast.cn"  prefix="itcast"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head> 

    <title>第一個自定義標籤</title>  

  </head>

  

  <body>

    <% 

    //得到客戶IP地址

    //String ip = request.getRemoteHost();

    //out.write("客戶的IP地址爲: "+ip);

     %>

     

     <test:showIp></test:showIp>

  </body>

</html>

9 自定義標籤作用

1)控制是否執行標籤體內容

執行:

jspFragment.invoke(null) 把標籤體內容輸出到瀏覽器

不執行:

什麼都不做!!! (不執行jspFragment.invoke(null)

2)控制是否執行標籤餘下的內容

執行:  

什麼都不做!!!

不執行:

拋出SkipPageException異常即可!

3)控制重複出現執行標籤體內容


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