JSP(java伺服器頁面)

JSP(java伺服器頁面)

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它是由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技術的簡單易用,完全的面向對象,具有平台無關性且安全可靠,主要面向網際網路的所有特點。

基本介紹

  • 中文名:JAVA伺服器頁面
  • 外文名:Java Server Pages
  • 外語縮寫:JSP
  • 本質動態網頁技術標準
發展歷程,語言標準,句法,靜態數據,JSP指令,JSP腳本,腳本元素,JSP動作,技術方法,語言特點,優點,缺點,語言組成,語言對比,JSP標準標籤庫,JSTL 庫安裝,核心標籤,格式化標籤,SQL標籤,XML 標籤,JSTL函式,

發展歷程

1.2版本
JSP1.2不支持EL,但可以使用外部的JSTL標籤以便使用EL。
2.0版本
JSP 2.0的一個主要特點是它支持表達語言(expression language)。JSTL表達式語言可以使用標記格式方便地訪問JSP的隱含對象和JavaBeans組件,JSTL的核心標記提供了流程和循環控制功能。自製標記也有自定義函式的功能,因此基本上所有scriptlet能實現的功能都可以由JSTL替代。在JSP 2.0中,建議儘量使用EL而使JSP的格式更一致。
SimpleTag
JSP 2.0中加入了新的創建自製標記的API,javax.servlet.jsp.tagext.SimpleTag定義了用來實現簡單標記的接口。和 JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag和doEndTag方法,而提供了一個簡單的doTag方法。這個方法在調用該標記時只被使用一次。而需要在一個自製標記中實現的所有邏輯過程、循環和對標記體的評估等都在這個方法中實現。從這個方面來講, SimpleTag和IterationTag可以達到同等的作用。但SimpleTag的方法和處理周期要簡單得多。在SimpleTag中還有用來設定JSP內容的setJspBody和getJspBody方法。Web容器會使用setJspBody方法定義一個代表JSP內容的 JspFragment對象。實現SimpleTag標記的程式可以在doTag方法中根據需要多次調用getJspBody.invoke方法以處理JSP內容。
重要功能
JSP2.0中的一個主要功能是JSP fragment,它的基本特點是可以使處理JSP的容器推遲評估JSP標記屬性。我們知道一般JSP是首先評估JSP標記的屬性,然後在處理JSP標記時使用這些屬性,而JSP fragment提供了動態的屬性。也就是說,這些屬性在JSP處理其標記體時是可以被改變的。JSP需要將這樣的屬性定義為 javax.servlet.jsp.tagext.JspFragment類型。當JSP標記設定成這種形式時,這種標記屬性實際上的處理方法類似於標記體。在實現標記的程式中,標記屬性可以被反覆評估多次。這種用法稱為JSP fragment。JSP fragment還可以定義在一個SimpleTag處理程式中使用的自製標記動作。像前面例子說明的,getJspBody返回一個 JspFragment對象並可以在doTag方法中多次使用。需要注意的是,使用JSP fragment的JSP只能有一般的文本和JSP action,不能有scriptlet和scriptlet表達式。

語言標準

句法

一個JSP頁面可以被分為以下幾部份:
  • 靜態數據,如HTML
  • JSP指令,如include指令
  • JSP腳本元素和變數
  • JSP動作
  • 用戶自定義標籤

靜態數據

靜態數據在輸入檔案中的內容和輸出給HTTP回響的內容完全一致。此時,該JSP輸入檔案會是一個沒有內嵌JAVA或動作的HTML頁面。而且,客戶端每次請求都會得到相同的回響內容。

JSP指令

JSP指令控制JSP編譯器如何去生成servlet,以下是可用的指令:
  • 包含指令include –包含指令通知JSP編譯器把另外一個檔案完全包含入當前檔案中。效果就好像被包含檔案的內容直接被貼上到當前檔案中一樣。這個功能和C預處理器所提供的很類似。被包含檔案的擴展名一般都是"jspf"(即JSPFragment,JSP碎片):
<%@ include file="somefile.jsp" %>
  • 頁面指令page –頁面指令有以下幾個選項:
import
使一個JAVA導入聲明被插入到最終頁面檔案。
contentType
規定了生成內容的類型。當生成非HTML內容或者當前字元集character set並非默認字元集時使用。
errorPage
處理HTTP請求時,如果出現異常則顯示該錯誤提示信息頁面。
isErrorPage
如果設定為TRUE,則表示當前檔案是一個錯誤提示頁面。
isThreadSafe
表示最終生成的servlet是否安全執行緒(threadsafe)。
<%@ page import="java.util.*" %> //example import導入樣例<%@ page contentType="text/html" %> //example contentType頁面類型樣例<%@ page isErrorPage=false %> //example for non error page無錯頁面樣例<%@ page isThreadSafe=true %> //example for a thread safe JSP安全執行緒JSP樣例
注意:在同一個JSP檔案中只有"import"導入頁面指令可以被多次使用。
  • 標籤庫指令taglib –標籤庫指令描述了要使用的JSP標籤庫。該指令需要指定一個前綴prefix(和C++的命名空間很類似)和標籤庫的描述URI:
<%@ taglib prefix="myprefix" uri="taglib/mytag.tld" %>

JSP腳本

標準腳本變數
以下是永遠可用的腳本變數:
  • out – JSPWriter用來寫入回響流的數據
  • page – servlet自身
  • pageContext –一個PageContext實例包括和整個頁面相聯繫的數據,一個給定的HTML頁面可以在多個JSP之間傳遞。
  • request –HTTP request對象
  • response –HTTP response對象
  • session –用於保持客戶端與伺服器連線的對象

腳本元素

有三個基本的腳本元素,作用是使JAVA代碼可以直接插入servlet.
  • 一種是聲明標籤,在JAVA SERVLET的類體中放入一個變數的定義。靜態的數據成員也可以如此定義。
  • <%! int serverInstanceVariable = 1; %>
一種是腳本標籤,在JAVA SERVLET的類的_jspService()方法中放入所包含的語句。
  • <% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %>
一種是表達式標籤,在JAVA SERVLET的類中放入待賦值的表達式,表達式注意不能以分號結尾。
  • <%= "expanded inline data " + 1 %>

JSP動作

JSP動作是一系列可以調用內建於網路伺服器中的功能的XML標籤。JSP提供了以下動作:
jsp:include
和子過程類似,JAVA SERVLET暫時接管對其它指定的JSP頁的請求和回響。當處理完該JSP頁後就馬上把控制權交還當前JSP頁。這樣JSP代碼就可以在多個JSP頁中共享而不用複製。
jsp:param
可以在jsp:include, jsp:forward或jsp:params塊之間使用。指定一個將加入請求的當前參數組中的參數。
jsp:forward
用於處理對另一個JSP或SERVLET的請求和回響。控制權永遠不會交還給當前JSP頁。
jsp:plugin
Netscape Navigator的老版本和Internet Explorer使用不同的標籤以嵌入一個applet。這個動作產生為嵌入一個APPLET所需要的指定瀏覽器標籤。
jsp:fallback
如果瀏覽器不支持APPLETS則會顯示的內容。
jsp:getProperty
從指定的JavaBean中獲取一個屬性值。
jsp:setProperty
在指定的JavaBean中設定一個屬性值。
jsp:useBean
創建或者復用一個JavaBean變數到JSP頁。

技術方法

為了快速方便地進行動態網站的開發,JSP在以下幾個方面做了改進,使其成為快速建立跨平台的動態網站的首選方案。
1.將內容的生成和顯示進行分離
用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面,並使用JSP標識或者小腳本來生成頁面上的動態內容(內容是根據請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在腳本中,所有的腳本在伺服器端運行。由於核心邏輯被封裝在標識和JavaBeans中,所以Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。
在伺服器端,JSP引擎解釋JSP標識和腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBC技術訪問資料庫或者包含檔案),並且將結果以HTML(或者XML)頁面的形式傳送回瀏覽器。這既有助於作者保護自己的代碼,又能保證任何基於HTML的Web瀏覽器的完全可用性。
可重用組件
絕大多數JSP頁面依賴於可重用的、跨平台的組件(JavaBeans或者Enterprise JavaBeans組件)來執行應用程式所要求的複雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者和客戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種組織在他們現有的技能和最佳化結果的開發努力中得到平衡。
採用標識
Web頁面開發人員不會都是熟悉腳本語言的編程人員。JSP技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。標準的JSP標識能夠訪問和實例化JavaBeans組件,設定或者檢索組件屬性,下載Applet,以及執行用其他方法更難於編碼和耗時的功能。
適應平台
幾乎所有平台都支持Java,JSP+JavaBeans幾乎可以在所有平台下通行無阻。從一個平台移植到另外一個平台,JSP和JavaBeans甚至不用重新編譯,因為Java位元組碼都是標準的與平台無關的。
資料庫連線
Java中連線資料庫的技術是JDBC,Java程式通過JDBC驅動程式與資料庫相連,執行查詢、提取數據等操作。Sun公司還開發了JDBC-ODBC bridge,利用此技術Java程式可以訪問帶有ODBC驅動程式的資料庫,大多數資料庫系統都帶有ODBC驅動程式,所以Java程式能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等資料庫。
此外,通過開發標識庫,JSP技術可以進一步擴展。第三方開發人員和其他人員可以為常用功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來進行工作。
JSP技術很容易整合到多種套用體系結構中,以利用現存的工具和技巧,並且能擴展到支持企業級的分散式套用中。作為採用Java技術家族的一部分,以及Java 2(企業版體系結構)的一個組成部分,JSP技術能夠支持高度複雜的基於Web的套用。 由於JSP頁面的內置腳本語言是基於Java的,而且所有的JSP頁面都被編譯成為Java Servlets,所以JSP頁面具有Java技術的所有好處,包括健壯的存儲管理和安全性。作為Java平台的一部分,JSP擁有Java程式語言“一次編寫,各處運行”的特點。

語言特點

優點

(1)一次編寫,到處運行。除了系統之外,代碼不用做任何更改。
(2)系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP的局限性JSP的優勢是顯而易見的。
(3)強大的可伸縮性。從只有一個小的Jar檔案就可以運行Servlet/JSP,到由多台伺服器進行集群和負載均衡,到多台Application進行事務處理,訊息處理,一台伺服器到無數台伺服器,Java顯示了一個巨大的生命力。
(4)多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。
JSPJSP
(5)支持伺服器端組件。web套用需要強大的伺服器端組件來支持,開發人員需要利用其他工具設計實現複雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVA BEANS 組件來實現複雜商務功能。

缺點

(1) 與ASP也一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
(2) Java的運行速度是用class常駐記憶體來完成的,所以它在一些情況下所使用的記憶體比起用戶數量來說確實是“最低性能價格比”了。

語言組成

內置對象
request
request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用於接受通過HTTP協定傳送到伺服器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。
response
response 代表的是對客戶端的回響,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。
session
1.什麼是session:從一個客戶打開瀏覽器並連線到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間反覆連線,反覆刷新一個頁面,伺服器應當通過某種辦法知道這是同一個客戶,這就需要session對象。
2.session對象的ID:當一個客戶首次訪問伺服器上的一個JSP頁面時,JSP引擎產生一個session對象,同時分配一個String類型的ID號,JSP引擎同時將這個ID號傳送到客戶端,存放在Cookie中,這樣session對象和客戶之間就建立了一一對應的關係。當客戶再訪問連線該伺服器的其他頁面時,不再分配給客戶新的session對象,直到客戶關閉瀏覽器後,伺服器端該客戶的session對象才取消,並且和客戶的會話對應關係消失。當客戶重新打開瀏覽器再連線到該伺服器時,伺服器為該客戶再創建一個新的session對象。
3.session對象存在一定時間過期問題,所以存在session中的名值對會在一定時間後失去,可以通過更改session有效時間來避免這種情況。同時編程時儘量避免將大量有效信息存儲在session中,request是一個不錯的替代對象。
application
1.什麼是application:
伺服器啟動後就產生了這個application對象,當客戶在所訪問的網站的各個頁面之間瀏覽時,這個application對象都是同一個,直到伺服器關閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共享這個內置的application對象。
2.application對象常用方法:
(1)public void setAttribute(String key,Object obj): 將參數Object指定的對象obj添加到application對象中,並為添加的對象指定一個索引關鍵字。
(2)public Object getAttribute(String key): 獲取application對象中含有關鍵字的對象。
out
out 對象用於在Web瀏覽器內輸出信息,並且管理套用伺服器上的輸出緩衝區。在使用 out 對象輸出數據時,可以對數據緩衝區進行操作,及時清除緩衝區中的殘餘數據,為其他的輸出讓出緩衝空間。待數據輸出完畢後,要及時關閉輸出流。
page
page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變數,類似於Java編程中的 this 指針。
config
config 對象的主要作用是取得伺服器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化參數。
exception
java.lang.Throwable 的實例,該實例代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時,該對象才可以使用。常用的方法有getMessage()和printStackTrace()等。
pageContext
pageContext 對象的作用是取得任何範圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

語言對比

與servlets的區別
從架構上說,JSP可以被看作是從Servlets高級提煉而作為JAVA Servlet2.1 API的擴展而套用。Servlets和JSP最早都是由Sun Microsystems(昇陽公司)開發的。從JSP1.2版本以來,JSP處於Java Community Process(有人譯為:JAVA社區組織)開發模式下。JSR-53規定了JSP 1.2和Servlet 2.4的規範,JSR-152規定了JSP 2.0的規範。2006年5月,JSP 2.1的規範作為Java EE5的一部份,在JSR-245中發布。
與ASP的比較
JSP(Java Server Page)與ASP(Active Server Page)兩者都是常用的動態網頁技術,也都是可以嵌入HTML中的程式,但兩者是有著本質的不同,主要從以下幾個方面對其進行比較:
1.Web伺服器的支持:大多數通用的 Web伺服器如:Apache、Netscape和Microsoft IIS都支持JSP頁面,只有微軟本身的Microsoft IIS和Personal Web Server可以支持ASP。
2.平台的支持:JSP具有平台獨立性,只要是一般的Java程式可以運行的平台,都支持JSP程式。Windows平台可以很好的支持ASP,但ASP對於基於Win32逐漸模型的依賴,使得它難於移植到其它平台上。
3.組件模型:JSP是建立在可重用的、跨平台的組件(如:JavaBeans、Enterprises JavaBeans和用戶定製的標籤庫等組件)之上的,而ASP使用的是基於Win32的COM組件模型。
4.腳本語言:JSP可以使用Java程式語言或JavaScript作為腳本語言,而ASP使用VBScript或Jscript作為腳本語言。
5.安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全結構。
6.與Access資料庫的連線:JSP使用JDBC建立與Access資料庫的連線,而ASP對Access資料庫使用Data Active Objects。
7.用戶定製的標籤:JSP可以使用用戶定製標籤庫進行擴充,而ASP中沒有用戶定製標籤庫,ASP是不能擴充的。

JSP標準標籤庫

根據JSTL標籤所提供的功能,可以將其分為5個類別。

JSTL 庫安裝

Apache Tomcat安裝JSTL 庫步驟如下:
  • 從Apache的標準標籤庫中下載的二進包(jakarta-taglibs-standard-current.zip)。下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
  • 下載jakarta-taglibs-standard-1.1.1.zip 包並解壓,將jakarta-taglibs-standard-1.1.1/lib/下的兩個jar檔案:standard.jar和jstl.jar檔案拷貝到/WEB-INF/lib/下。
使用任何庫,你必須在每個JSP檔案中的頭部包含<taglib>標籤。

核心標籤

核心標籤是最常用的JSTL標籤。引用核心標籤庫的語法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
標籤
描述
<c:out >
用於在JSP中顯示數據,就像<%= ... >
<c:set >
用於保存數據
<c:remove >
用於刪除數據
<c:catch>
用來處理產生錯誤的異常狀況,並且將錯誤信息儲存起來
<c:if>
與我們在一般程式中用的if一樣
<c:choose>
本身只當做<c:when>和<c:otherwise>的父標籤
<c:when>
<c:choose>的子標籤,用來判斷條件是否成立
<c:otherwise >
<c:choose>的子標籤,接在<c:when>標籤後,當<c:when>標籤判斷為false時被執行
<c:import>
檢索一個絕對或相對 URL,然後將其內容暴露給頁面
<c:forEach >
基礎疊代標籤,接受多種集合類型
<c:forTokens>
根據指定的分隔設定來分隔內容并迭代輸出
<c:param>
用來給包含或重定向的頁面傳遞參數
<c:redirect >
重定向至一個新的URL.
<c:url>
使用可選的查詢參數來創造一個URL

格式化標籤

JSTL格式化標籤用來格式化並輸出文本、日期、時間、數字。引用格式化標籤庫的語法如下:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
標籤
描述
<fmt:formatNumber>
使用指定的格式或精度格式化數字
<fmt:parseNumber>
解析一個代表著數字,貨幣或百分比的字元串
<fmt:formatDate>
使用指定的風格或模式格式化日期和時間
<fmt:parseDate>
解析一個代表著日期或時間的字元串
<fmt:bundle>
綁定資源
<fmt:setLocale>
指定地區
<fmt:setBundle>
綁定資源
<fmt:timeZone>
指定時區
<fmt:setTimeZone>
指定時區
<fmt:message>
顯示資源配置檔案信息
<fmt:requestEncoding>
設定request的字元編碼

SQL標籤

JSTL SQL標籤庫提供了與關係型資料庫(Oracle,MySQL,SQL Server等等)進行互動的標籤。引用SQL標籤庫的語法如下:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
標籤
描述
<sql:setDataSource>
指定數據源
<sql:query>
運行SQL查詢語句
<sql:update>
運行SQL更新語句
<sql:param>
將SQL語句中的參數設為指定值
<sql:dateParam>
將SQL語句中的日期參數設為指定的java.util.Date 對象值
<sql:transaction >
在共享資料庫連線中提供嵌套的資料庫行為元素,將所有語句以一個事務的形式來運行

XML 標籤

JSTL XML標籤庫提供了創建和操作XML文檔的標籤。引用XML標籤庫的語法如下:
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
在使用xml標籤前,你必須將XML 和 XPath 的相關包拷貝至你的<Tomcat 安裝目錄>\lib下:
  • XercesImpl.jar:
標籤
描述
<x:out>
與<%= ... >,類似,不過只用於XPath表達式
<x:parse>
解析 XML 數據
<x:set >
設定XPath表達式
<x:if >
判斷XPath表達式,若為真,則執行本體中的內容,否則跳過本體
<x:forEach>
疊代XML文檔中的節點
<x:choose>
<x:when>和<x:otherwise>的父標籤
<x:when >
<x:choose>的子標籤,用來進行條件判斷
<x:otherwise >
<x:choose>的子標籤,當<x:when>判斷為false時被執行
<x:transform >
將XSL轉換套用在XML文檔中
<x:param >
與<x:transform>共同使用,用於設定XSL樣式表

    JSTL函式

    JSTL包含一系列標準函式,大部分是通用的字元串處理函式。引用JSTL函式館的語法如下:
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    函式
    描述
    fn:contains()
    測試輸入的字元串是否包含指定的子串
    fn:containsIgnoreCase()
    測試輸入的字元串是否包含指定的子串,大小寫不敏感
    fn:endsWith()
    測試輸入的字元串是否以指定的後綴結尾
    fn:escapeXml()
    跳過可以作為XML標記的字元
    fn:indexOf()
    返回指定字元串在輸入字元串中出現的位置
    fn:join()
    將數組中的元素合成一個字元串然後輸出
    fn:length()
    返回字元串長度
    fn:replace()
    將輸入字元串中指定的位置替換為指定的字元串然後返回
    fn:split()
    將字元串用指定的分隔設定分隔然後組成一個子字元串數組並返回
    fn:startsWith()
    測試輸入字元串是否以指定的前綴開始
    fn:substring()
    返回字元串的子集
    fn:substringAfter()
    返回字元串在指定子串之後的子集
    fn:substringBefore()
    返回字元串在指定子串之前的子集
    fn:toLowerCase()
    將字元串中的字元轉為小寫
    fn:toUpperCase()
    將字元串中的字元轉為大寫
    fn:trim()
    移除首位的空白符

    相關詞條

    熱門詞條

    聯絡我們