日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

杂项-Java:JSP

發(fā)布時(shí)間:2024/6/30 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 杂项-Java:JSP 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ylbtech-雜項(xiàng)-Java:JSP

?

1.返回頂部
1、 JSP全名為Java Server Pages,中文名叫java服務(wù)器頁(yè)面,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),它是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。 用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 它實(shí)現(xiàn)了Html語(yǔ)法中的java擴(kuò)展(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁(yè)面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來(lái)。 Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?#xff0c;具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 2、
2.返回頂部
1、 發(fā)展歷程 1.2版本 JSP1.2不支持EL,但可以使用外部的JSTL標(biāo)簽以便使用EL。? 2.0版本 JSP 2.0的一個(gè)主要特點(diǎn)是它支持表達(dá)語(yǔ)言(expression language)。JSTL表達(dá)式語(yǔ)言可以使用標(biāo)記格式方便地訪問(wèn)JSP的隱含對(duì)象和JavaBeans組件,JSTL的核心標(biāo)記提供了流程和循環(huán)控制功能自制標(biāo)記也有自定義函數(shù)的功能,因此基本上所有scriptlet能實(shí)現(xiàn)的功能都可以由JSTL替代。在JSP 2.0中,建議盡量使用EL而使JSP的格式更一致。 SimpleTag JSP 2.0中加入了新的創(chuàng)建自制標(biāo)記的API,javax.servlet.jsp.tagext.SimpleTag定義了用來(lái)實(shí)現(xiàn)簡(jiǎn)單標(biāo)記的接口。和 JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag和doEndTag方法,而提供了一個(gè)簡(jiǎn)單的doTag方法。這個(gè)方法在調(diào)用該標(biāo)記時(shí)只被使用一次。而需要在一個(gè)自制標(biāo)記中實(shí)現(xiàn)的所有邏輯過(guò)程、循環(huán)和對(duì)標(biāo)記體的評(píng)估等都在這個(gè)方法中實(shí)現(xiàn)。從這個(gè)方面來(lái)講, SimpleTag和IterationTag可以達(dá)到同等的作用。但SimpleTag的方法和處理周期要簡(jiǎn)單得多。在SimpleTag中還有用來(lái)設(shè)置JSP內(nèi)容的setJspBody和getJspBody方法。Web容器會(huì)使用setJspBody方法定義一個(gè)代表JSP內(nèi)容的 JspFragment對(duì)象。實(shí)現(xiàn)SimpleTag標(biāo)記的程序可以在doTag方法中根據(jù)需要多次調(diào)用getJspBody.invoke方法以處理JSP內(nèi)容。 重要功能 JSP2.0中的一個(gè)主要功能是JSP fragment,它的基本特點(diǎn)是可以使處理JSP的容器推遲評(píng)估JSP標(biāo)記屬性。我們知道一般JSP是首先評(píng)估JSP標(biāo)記的屬性,然后在處理JSP標(biāo)記時(shí)使用這些屬性,而JSP fragment提供了動(dòng)態(tài)的屬性。也就是說(shuō),這些屬性在JSP處理其標(biāo)記體時(shí)是可以被改變的。JSP需要將這樣的屬性定義為 javax.servlet.jsp.tagext.JspFragment類型。當(dāng)JSP標(biāo)記設(shè)置成這種形式時(shí),這種標(biāo)記屬性實(shí)際上的處理方法類似于標(biāo)記體。在實(shí)現(xiàn)標(biāo)記的程序中,標(biāo)記屬性可以被反復(fù)評(píng)估多次。這種用法稱為JSP fragment。JSP fragment還可以定義在一個(gè)SimpleTag處理程序中使用的自制標(biāo)記動(dòng)作。像前面例子說(shuō)明的,getJspBody返回一個(gè) JspFragment對(duì)象并可以在doTag方法中多次使用。需要注意的是,使用JSP fragment的JSP只能有一般的文本和JSP action,不能有scriptlet和scriptlet表達(dá)式。 2、
3. 語(yǔ)言標(biāo)準(zhǔn)返回頂部
1、 語(yǔ)言標(biāo)準(zhǔn) 句法 一個(gè)JSP頁(yè)面可以被分為以下幾部份:
  • 靜態(tài)數(shù)據(jù),如HTML
  • JSP指令,如include指令
  • JSP腳本元素和變量
  • JSP動(dòng)作
  • 用戶自定義標(biāo)簽
靜態(tài)數(shù)據(jù) 靜態(tài)數(shù)據(jù)在輸入文件中的內(nèi)容和輸出給HTTP響應(yīng)的內(nèi)容完全一致。此時(shí),該JSP輸入文件會(huì)是一個(gè)沒(méi)有內(nèi)嵌JAVA或動(dòng)作的HTML頁(yè)面。而且,客戶端每次請(qǐng)求都會(huì)得到相同的響應(yīng)內(nèi)容。 JSP指令 JSP指令控制JSP編譯器如何去生成servlet,以下是可用的指令:
  • 包含指令include –包含指令通知JSP編譯器把另外一個(gè)文件完全包含入當(dāng)前文件中。效果就好像被包含文件的內(nèi)容直接被粘貼到當(dāng)前文件中一樣。這個(gè)功能和C預(yù)處理器所提供的很類似。被包含文件的擴(kuò)展名一般都是"jspf"(即JSPFragment,JSP碎片):
<%@ include file="somefile.jsp" %>
  • 頁(yè)面指令page –頁(yè)面指令有以下幾個(gè)選項(xiàng):
import 使一個(gè)JAVA導(dǎo)入聲明被插入到最終頁(yè)面文件。
contentType 規(guī)定了生成內(nèi)容的類型。當(dāng)生成非HTML內(nèi)容或者當(dāng)前字符集character set并非默認(rèn)字符集時(shí)使用。
errorPage 處理HTTP請(qǐng)求時(shí),如果出現(xiàn)異常則顯示該錯(cuò)誤提示信息頁(yè)面。
isErrorPage 如果設(shè)置為TRUE,則表示當(dāng)前文件是一個(gè)錯(cuò)誤提示頁(yè)面。
isThreadSafe 表示最終生成的servlet是否安全線程(threadsafe)。
<%@ page import="java.util.*" %> //example import導(dǎo)入樣例 <%@ page contentType="text/html" %> //example contentType頁(yè)面類型樣例 <%@ page isErrorPage=false %> //example for non error page無(wú)錯(cuò)頁(yè)面樣例 <%@ page isThreadSafe=true %> //example for a thread safe JSP安全線程JSP樣例 注意:在同一個(gè)JSP文件中只有"import"導(dǎo)入頁(yè)面指令可以被多次使用。
  • 標(biāo)簽庫(kù)指令taglib –標(biāo)簽庫(kù)指令描述了要使用的JSP標(biāo)簽庫(kù)。該指令需要指定一個(gè)前綴prefix(和C++的命名空間很類似)和標(biāo)簽庫(kù)的描述URI:
<%@ taglib prefix="myprefix" uri="taglib/mytag.tld" %> JSP腳本 標(biāo)準(zhǔn)腳本變量 以下是永遠(yuǎn)可用的腳本變量:
  • out – JSPWriter用來(lái)寫入響應(yīng)流的數(shù)據(jù)
  • page – servlet自身
  • pageContext –一個(gè)PageContext實(shí)例包括和整個(gè)頁(yè)面相聯(lián)系的數(shù)據(jù),一個(gè)給定的HTML頁(yè)面可以在多個(gè)JSP之間傳遞。
  • request –HTTP request對(duì)象
  • response –HTTP response對(duì)象
  • session –用于保持客戶端與服務(wù)器連接的對(duì)象
腳本元素 有三個(gè)基本的腳本元素,作用是使JAVA代碼可以直接插入servlet.
  • 一種是聲明標(biāo)簽,在JAVA SERVLET的類體中放入一個(gè)變量的定義。靜態(tài)的數(shù)據(jù)成員也可以如此定義。
    • <%! int serverInstanceVariable = 1; %>
  • 一種是腳本標(biāo)簽,在JAVA SERVLET的類的_jspService()方法中放入所包含的語(yǔ)句。
    • <% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %>
  • 一種是表達(dá)式標(biāo)簽,在JAVA SERVLET的類中放入待賦值的表達(dá)式,表達(dá)式注意不能以分號(hào)結(jié)尾。
    • <%= "expanded inline data " + 1 %>
JSP動(dòng)作 JSP動(dòng)作是一系列可以調(diào)用內(nèi)建于網(wǎng)絡(luò)服務(wù)器中的功能的XML標(biāo)簽。JSP提供了以下動(dòng)作:
jsp:include 和子過(guò)程類似,JAVA SERVLET暫時(shí)接管對(duì)其它指定的JSP頁(yè)的請(qǐng)求和響應(yīng)。當(dāng)處理完該JSP頁(yè)后就馬上把控制權(quán)交還當(dāng)前JSP頁(yè)。這樣JSP代碼就可以在多個(gè)JSP頁(yè)中共享而不用復(fù)制。
jsp:param 可以在jsp:include, jsp:forward或jsp:params塊之間使用。指定一個(gè)將加入請(qǐng)求的當(dāng)前參數(shù)組中的參數(shù)。
jsp:forward 用于處理對(duì)另一個(gè)JSP或SERVLET的請(qǐng)求和響應(yīng)。控制權(quán)永遠(yuǎn)不會(huì)交還給當(dāng)前JSP頁(yè)。
jsp:plugin Netscape Navigator的老版本和Internet Explorer使用不同的標(biāo)簽以嵌入一個(gè)applet。這個(gè)動(dòng)作產(chǎn)生為嵌入一個(gè)APPLET所需要的指定瀏覽器標(biāo)簽。
jsp:fallback 如果瀏覽器不支持APPLETS則會(huì)顯示的內(nèi)容。
jsp:getProperty 從指定的JavaBean中獲取一個(gè)屬性值。
jsp:setProperty 在指定的JavaBean中設(shè)置一個(gè)屬性值。
jsp:useBean 創(chuàng)建或者復(fù)用一個(gè)JavaBean變量到JSP頁(yè)。
技術(shù)方法 為了快速方便地進(jìn)行動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā),JSP在以下幾個(gè)方面做了改進(jìn),使其成為快速建立跨平臺(tái)的動(dòng)態(tài)網(wǎng)站的首選方案。 1.將內(nèi)容的生成和顯示進(jìn)行分離 用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面,并使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求變化的,例如請(qǐng)求賬戶信息或者特定的一瓶酒的價(jià)格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)行。由于核心邏輯被封裝在標(biāo)識(shí)和JavaBeans中,所以Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。 在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBC技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)或者包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這既有助于作者保護(hù)自己的代碼,又能保證任何基于HTML的Web瀏覽器的完全可用性。 可重用組件 絕大多數(shù)JSP頁(yè)面依賴于可重用的、跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeans組件)來(lái)執(zhí)行應(yīng)用程序所要求的復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團(tuán)體所使用。基于組件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。 采用標(biāo)識(shí) Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。 適應(yīng)平臺(tái) 幾乎所有平臺(tái)都支持Java,JSP+JavaBeans幾乎可以在所有平臺(tái)下通行無(wú)阻。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。 數(shù)據(jù)庫(kù)連接 Java中連接數(shù)據(jù)庫(kù)的技術(shù)是JDBC,Java程序通過(guò)JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開(kāi)發(fā)了JDBC-ODBC bridge,利用此技術(shù)Java程序可以訪問(wèn)帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù),大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪問(wèn)諸如Oracle、Sybase、MS SQL Server和MS Access等數(shù)據(jù)庫(kù)。 此外,通過(guò)開(kāi)發(fā)標(biāo)識(shí)庫(kù),JSP技術(shù)可以進(jìn)一步擴(kuò)展。第三方開(kāi)發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)進(jìn)行工作。 JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且能擴(kuò)展到支持企業(yè)級(jí)的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。 由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java的,而且所有的JSP頁(yè)面都被編譯成為Java Servlets,所以JSP頁(yè)面具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫,各處運(yùn)行”的特點(diǎn)。 語(yǔ)言特點(diǎn) 優(yōu)點(diǎn) (1)一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP的局限性JSP的優(yōu)勢(shì)是顯而易見(jiàn)的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 JSP (5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。 缺點(diǎn) (1) 與ASP也一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。 (2) Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了。 2、
4. 語(yǔ)言組成、語(yǔ)言對(duì)比返回頂部
1、 語(yǔ)言組成 內(nèi)置對(duì)象 request request 對(duì)象是 javax.servlet.httpServletRequest類型的對(duì)象。 該對(duì)象代表了客戶端的請(qǐng)求信息,主要用于接受通過(guò)HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請(qǐng)求方式以及請(qǐng)求參數(shù)等)。request對(duì)象的作用域?yàn)橐淮握?qǐng)求。 response response 代表的是對(duì)客戶端的響應(yīng),主要是將JSP容器處理過(guò)的對(duì)象傳回到客戶端。response對(duì)象也具有作用域,它只在JSP頁(yè)面內(nèi)有效。 session 1.什么是session:從一個(gè)客戶打開(kāi)瀏覽器并連接到服務(wù)器開(kāi)始,到客戶關(guān)閉瀏覽器離開(kāi)這個(gè)服務(wù)器結(jié)束,被稱為一個(gè)會(huì)話。當(dāng)一個(gè)客戶訪問(wèn)一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁(yè)面之間反復(fù)連接,反復(fù)刷新一個(gè)頁(yè)面,服務(wù)器應(yīng)當(dāng)通過(guò)某種辦法知道這是同一個(gè)客戶,這就需要session對(duì)象。 2.session對(duì)象的ID:當(dāng)一個(gè)客戶首次訪問(wèn)服務(wù)器上的一個(gè)JSP頁(yè)面時(shí),JSP引擎產(chǎn)生一個(gè)session對(duì)象,同時(shí)分配一個(gè)String類型的ID號(hào),JSP引擎同時(shí)將這個(gè)ID號(hào)發(fā)送到客戶端,存放在Cookie中,這樣session對(duì)象和客戶之間就建立了一一對(duì)應(yīng)的關(guān)系。當(dāng)客戶再訪問(wèn)連接該服務(wù)器的其他頁(yè)面時(shí),不再分配給客戶新的session對(duì)象,直到客戶關(guān)閉瀏覽器后,服務(wù)器端該客戶的session對(duì)象才取消,并且和客戶的會(huì)話對(duì)應(yīng)關(guān)系消失。當(dāng)客戶重新打開(kāi)瀏覽器再連接到該服務(wù)器時(shí),服務(wù)器為該客戶再創(chuàng)建一個(gè)新的session對(duì)象。 3.session對(duì)象存在一定時(shí)間過(guò)期問(wèn)題,所以存在session中的名值對(duì)會(huì)在一定時(shí)間后失去,可以通過(guò)更改session有效時(shí)間來(lái)避免這種情況。同時(shí)編程時(shí)盡量避免將大量有效信息存儲(chǔ)在session中,request是一個(gè)不錯(cuò)的替代對(duì)象。 application 1.什么是application: 服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)application對(duì)象,當(dāng)客戶在所訪問(wèn)的網(wǎng)站的各個(gè)頁(yè)面之間瀏覽時(shí),這個(gè)application對(duì)象都是同一個(gè),直到服務(wù)器關(guān)閉。但是與session不同的是,所有客戶的application對(duì)象都是同一個(gè),即所有客戶共享這個(gè)內(nèi)置的application對(duì)象。 2.application對(duì)象常用方法: (1)public void setAttribute(String key,Object obj): 將參數(shù)Object指定的對(duì)象obj添加到application對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字。 (2)public Object getAttribute(String key): 獲取application對(duì)象中含有關(guān)鍵字的對(duì)象。 out out 對(duì)象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用 out 對(duì)象輸出數(shù)據(jù)時(shí),可以對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行操作,及時(shí)清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時(shí)關(guān)閉輸出流。 page page 對(duì)象代表JSP本身,只有在JSP頁(yè)面內(nèi)才是合法的。 page隱含對(duì)象本質(zhì)上包含當(dāng)前 Servlet接口引用的變量,類似于Java編程中的 this 指針。 config config 對(duì)象的主要作用是取得服務(wù)器的配置信息。通過(guò) pageContext對(duì)象的 getServletConfig() 方法可以獲取一個(gè)config對(duì)象。當(dāng)一個(gè)Servlet 初始化時(shí),容器把某些信息通過(guò) config對(duì)象傳遞給這個(gè) Servlet。 開(kāi)發(fā)者可以在web.xml 文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁(yè)面提供初始化參數(shù)。 exception java.lang.Throwable 的實(shí)例,該實(shí)例代表其他頁(yè)面中的異常和錯(cuò)誤。只有當(dāng)頁(yè)面是錯(cuò)誤處理頁(yè)面,即編譯指令page 的isErrorPage 屬性為true 時(shí),該對(duì)象才可以使用。常用的方法有g(shù)etMessage()和printStackTrace()等。 pageContext pageContext 對(duì)象的作用是取得任何范圍的參數(shù),通過(guò)它可以獲取 JSP頁(yè)面的out、request、reponse、session、application 等對(duì)象。pageContext對(duì)象的創(chuàng)建和初始化都是由容器來(lái)完成的,在JSP頁(yè)面中可以直接使用 pageContext對(duì)象。 語(yǔ)言對(duì)比 與servlets的區(qū)別 從架構(gòu)上說(shuō),JSP可以被看作是從Servlets高級(jí)提煉而作為JAVA Servlet2.1 API的擴(kuò)展而應(yīng)用。Servlets和JSP最早都是由Sun Microsystems(升陽(yáng)公司)開(kāi)發(fā)的。從JSP1.2版本以來(lái),JSP處于Java Community Process(有人譯為:JAVA社區(qū)組織)開(kāi)發(fā)模式下。JSR-53規(guī)定了JSP 1.2和Servlet 2.4的規(guī)范,JSR-152規(guī)定了JSP 2.0的規(guī)范。2006年5月,JSP 2.1的規(guī)范作為Java EE5的一部份,在JSR-245中發(fā)布。 與ASP的比較 JSP(Java Server Page)與ASP(Active Server Page)兩者都是常用的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),也都是可以嵌入HTML中的程序,但兩者是有著本質(zhì)的不同,主要從以下幾個(gè)方面對(duì)其進(jìn)行比較: 1.Web服務(wù)器的支持:大多數(shù)通用的 Web服務(wù)器如:Apache、Netscape和Microsoft IIS都支持JSP頁(yè)面,只有微軟本身的Microsoft IIS和Personal Web Server可以支持ASP。 2.平臺(tái)的支持:JSP具有平臺(tái)獨(dú)立性,只要是一般的Java程序可以運(yùn)行的平臺(tái),都支持JSP程序。Windows平臺(tái)可以很好的支持ASP,但ASP對(duì)于基于Win32逐漸模型的依賴,使得它難于移植到其它平臺(tái)上。 3.組件模型:JSP是建立在可重用的、跨平臺(tái)的組件(如:JavaBeans、Enterprises JavaBeans和用戶定制的標(biāo)簽庫(kù)等組件)之上的,而ASP使用的是基于Win32的COM組件模型。 4.腳本語(yǔ)言:JSP可以使用Java編程語(yǔ)言或JavaScript作為腳本語(yǔ)言,而ASP使用VBScript或Jscript作為腳本語(yǔ)言。 5.安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全結(jié)構(gòu)。 6.與Access數(shù)據(jù)庫(kù)的連接:JSP使用JDBC建立與Access數(shù)據(jù)庫(kù)的連接,而ASP對(duì)Access數(shù)據(jù)庫(kù)使用Data Active Objects。 7.用戶定制的標(biāo)簽:JSP可以使用用戶定制標(biāo)簽庫(kù)進(jìn)行擴(kuò)充,而ASP中沒(méi)有用戶定制標(biāo)簽庫(kù),ASP是不能擴(kuò)充的。 2、
5. JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)返回頂部
1、 根據(jù)JSTL標(biāo)簽所提供的功能,可以將其分為5個(gè)類別。
  • 核心標(biāo)簽
  • 格式化標(biāo)簽
  • SQL 標(biāo)簽
  • XML 標(biāo)簽
  • JSTL 函數(shù)
JSTL 庫(kù)安裝 Apache Tomcat安裝JSTL 庫(kù)步驟如下:
  • 從Apache的標(biāo)準(zhǔn)標(biāo)簽庫(kù)中下載的二進(jìn)包(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/下的兩個(gè)jar文件:standard.jar和jstl.jar文件拷貝到/WEB-INF/lib/下。
使用任何庫(kù),你必須在每個(gè)JSP文件中的頭部包含<taglib>標(biāo)簽。 核心標(biāo)簽 核心標(biāo)簽是最常用的JSTL標(biāo)簽。引用核心標(biāo)簽庫(kù)的語(yǔ)法如下: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 標(biāo)簽 描述 <c:out > 用于在JSP中顯示數(shù)據(jù),就像<%= ... > <c:set > 用于保存數(shù)據(jù) <c:remove > 用于刪除數(shù)據(jù) <c:catch> 用來(lái)處理產(chǎn)生錯(cuò)誤的異常狀況并且將錯(cuò)誤信息儲(chǔ)存起來(lái) <c:if> 與我們?cè)谝话愠绦蛑杏玫?strong>if一樣 <c:choose> 本身只當(dāng)做<c:when>和<c:otherwise>的父標(biāo)簽 <c:when> <c:choose>的子標(biāo)簽,用來(lái)判斷條件是否成立 <c:otherwise > <c:choose>的子標(biāo)簽,接在<c:when>標(biāo)簽后當(dāng)<c:when>標(biāo)簽判斷為false時(shí)被執(zhí)行 <c:import> 檢索一個(gè)絕對(duì)或相對(duì) URL,然后將其內(nèi)容暴露給頁(yè)面 <c:forEach > 基礎(chǔ)迭代標(biāo)簽接受多種集合類型 <c:forTokens> 根據(jù)指定的分隔符來(lái)分隔內(nèi)容并迭代輸出 <c:param> 用來(lái)給包含或重定向頁(yè)面?zhèn)鬟f參數(shù) <c:redirect > 重定向至一個(gè)新的URL <c:url> 使用可選的查詢參數(shù)來(lái)創(chuàng)造一個(gè)URL 格式化標(biāo)簽 JSTL格式化標(biāo)簽用來(lái)格式化并輸出文本、日期、時(shí)間、數(shù)字。引用格式化標(biāo)簽庫(kù)的語(yǔ)法如下: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 標(biāo)簽 描述 <fmt:formatNumber> 使用指定的格式或精度格式化數(shù)字 <fmt:parseNumber> 解析一個(gè)代表著數(shù)字,貨幣或百分比的字符串 <fmt:formatDate> 使用指定的風(fēng)格或模式格式化日期和時(shí)間 <fmt:parseDate> 解析一個(gè)代表著日期或時(shí)間的字符串 <fmt:bundle> 綁定資源 <fmt:setLocale> 指定地區(qū) <fmt:setBundle> 綁定資源 <fmt:timeZone> 指定時(shí)區(qū) <fmt:setTimeZone> 指定時(shí)區(qū) <fmt:message> 顯示資源配置文件信息 <fmt:requestEncoding> 設(shè)置request的字符編碼 SQL標(biāo)簽 JSTL SQL標(biāo)簽庫(kù)提供了與關(guān)系型數(shù)據(jù)庫(kù)(Oracle,MySQL,SQL Server等等)進(jìn)行交互的標(biāo)簽。引用SQL標(biāo)簽庫(kù)的語(yǔ)法如下: <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 標(biāo)簽 描述 <sql:setDataSource> 指定數(shù)據(jù)源 <sql:query> 運(yùn)行SQL查詢語(yǔ)句 <sql:update> 運(yùn)行SQL更新語(yǔ)句 <sql:param> 將SQL語(yǔ)句中的參數(shù)設(shè)為指定值 <sql:dateParam> 將SQL語(yǔ)句中的日期參數(shù)設(shè)為指定的java.util.Date 對(duì)象值 <sql:transaction > 在共享數(shù)據(jù)庫(kù)連接中提供嵌套的數(shù)據(jù)庫(kù)行為元素將所有語(yǔ)句以一個(gè)事務(wù)的形式來(lái)運(yùn)行 XML 標(biāo)簽 JSTL XML標(biāo)簽庫(kù)提供了創(chuàng)建和操作XML文檔的標(biāo)簽。引用XML標(biāo)簽庫(kù)的語(yǔ)法如下: <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> 在使用xml標(biāo)簽前,你必須將XML 和 XPath 的相關(guān)包拷貝至你的<Tomcat 安裝目錄>\lib下:
    • XercesImpl.jar:
xalan.jar:
  • 標(biāo)簽
描述 <x:out> 與<%= ... >,類似,不過(guò)只用于XPath表達(dá)式 <x:parse> 解析 XML 數(shù)據(jù) <x:set > 設(shè)置XPath表達(dá)式 <x:if > 判斷XPath表達(dá)式,若為真,則執(zhí)行本體中的內(nèi)容,否則跳過(guò)本體 <x:forEach> 迭代XML文檔中的節(jié)點(diǎn) <x:choose> <x:when>和<x:otherwise>的父標(biāo)簽 <x:when > <x:choose>的子標(biāo)簽,用來(lái)進(jìn)行條件判斷 <x:otherwise > <x:choose>的子標(biāo)簽,當(dāng)<x:when>判斷為false時(shí)被執(zhí)行 <x:transform > 將XSL轉(zhuǎn)換應(yīng)用在XML文檔中 <x:param > 與<x:transform>共同使用,用于設(shè)置XSL樣式表 JSTL函數(shù) JSTL包含一系列標(biāo)準(zhǔn)函數(shù),大部分是通用的字符串處理函數(shù)。引用JSTL函數(shù)庫(kù)的語(yǔ)法如下: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 函數(shù) 描述 fn:contains() 測(cè)試輸入的字符串是否包含指定的子串 fn:containsIgnoreCase() 測(cè)試輸入的字符串是否包含指定的子串,大小寫不敏感 fn:endsWith() 測(cè)試輸入的字符串是否以指定的后綴結(jié)尾 fn:escapeXml() 跳過(guò)可以作為XML標(biāo)記的字符 fn:indexOf() 返回指定字符串在輸入字符串中出現(xiàn)的位置 fn:join() 將數(shù)組中的元素合成一個(gè)字符串然后輸出 fn:length() 返回字符串長(zhǎng)度 fn:replace() 將輸入字符串中指定的位置替換為指定的字符串然后返回 fn:split() 將字符串用指定的分隔符分隔然后組成一個(gè)子字符串?dāng)?shù)組并返回 fn:startsWith() 測(cè)試輸入字符串是否以指定的前綴開(kāi)始 fn:substring() 返回字符串的子集 fn:substringAfter() 返回字符串在指定子串之后的子集 fn:substringBefore() 返回字符串在指定子串之前的子集 fn:toLowerCase() 將字符串中的字符轉(zhuǎn)為小寫 fn:toUpperCase() 將字符串中的字符轉(zhuǎn)為大寫 fn:trim() 移除首位的空白符 2、
6.返回頂部
1、 https://baike.baidu.com/item/JSP/141543 2、 http://www.runoob.com/jsp/jsp-intro.html 2.2、 https://www.w3cschool.cn/jsp/ 3、
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

轉(zhuǎn)載于:https://www.cnblogs.com/storebook/p/9560810.html

總結(jié)

以上是生活随笔為你收集整理的杂项-Java:JSP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。