《JSP程序設(shè)計(jì)案例教程》課件ch3_第1頁(yè)
《JSP程序設(shè)計(jì)案例教程》課件ch3_第2頁(yè)
《JSP程序設(shè)計(jì)案例教程》課件ch3_第3頁(yè)
《JSP程序設(shè)計(jì)案例教程》課件ch3_第4頁(yè)
《JSP程序設(shè)計(jì)案例教程》課件ch3_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

jsp語(yǔ)法與內(nèi)置對(duì)象本章目標(biāo)JSP頁(yè)面的基本結(jié)構(gòu)JSP指令JSP動(dòng)作內(nèi)置對(duì)象表單數(shù)據(jù)的讀取

JSP頁(yè)面的基本結(jié)構(gòu)

JSP程序結(jié)構(gòu)包括注釋、聲明、表達(dá)式和程序段。注釋 注釋是由程序員插入的、用于解釋JSP源代碼的句子或短語(yǔ)。注釋不影響瀏覽器對(duì)頁(yè)面的顯示,但是可以有助于用戶理解生成此頁(yè)面的HTML和JSP源代碼,注釋有HTML注釋、隱藏注釋、腳本注釋三種類型。1.HTML注釋1、HTML注釋類似于在HTML中使用的那些注釋,格式為:

<!--注釋-->

可在其中包括動(dòng)態(tài)內(nèi)容,在瀏覽器的“查看源文件”可看到注釋。2、隱藏注釋隱藏注釋不發(fā)給客戶端,只能通過(guò)查看原始JSP文件查看,格式為:

<%--注釋--%>[程序代碼3-1.jsp][程序代碼3-2.jsp]3.腳本注釋java腳本中的注釋,與java程序中的注釋相同。語(yǔ)法形式為://單行注釋/*注釋*/ 代碼段JSP中的代碼部分,是java程序的一段代碼,幾乎可以使用任何java語(yǔ)法,它可以使用jsp頁(yè)面所定義的變量、方法、表達(dá)式或JavaBeans。腳本的語(yǔ)法格式為:<%scriptlet%>可以在“<%”和“%>”之間插入Java程序片,一個(gè)JSP頁(yè)面可以有許多程序片,這些代碼塊將被JSP服務(wù)器按照順序執(zhí)行。[程序代碼3-3.jsp]聲明JSP中的聲明可以用來(lái)定義變量,在聲明元素中聲明的變量和方法在JSP頁(yè)面初始化時(shí)被初始化。JSP聲明的語(yǔ)法格式為:<%!declaration;[declaration;]...%>其中declaration為聲明的變量、方法的名稱和內(nèi)容。例:<%!Stringname=newString("BOB");%>一個(gè)簡(jiǎn)單的方法聲明:<%!publicStringgetName(){returnname;}%>在聲明變量變量和方法時(shí),需要注意以下幾點(diǎn):聲明必須以";"結(jié)尾。可以直接使用在<%@page%>中被包含進(jìn)來(lái)的已經(jīng)聲明的變量和方法,不需要對(duì)它們重新進(jìn)行聲明。一個(gè)聲明僅在一個(gè)頁(yè)面中有效。[程序代碼3-4.jsp][程序代碼3-5.jsp]表達(dá)式表達(dá)式用于輸出單個(gè)變量或某個(gè)計(jì)算的結(jié)果,可以將某個(gè)計(jì)算結(jié)果轉(zhuǎn)換成一個(gè)字符串并且直接使用在輸出網(wǎng)頁(yè)上。表達(dá)式可以包含任何JAVA語(yǔ)言表達(dá)式,只要表達(dá)式可以求值。表達(dá)式的語(yǔ)法格式為:<%=expression%>[程序代碼3-6.jsp]JSP指令幾個(gè)典型的JSP指令有page指令、include指令、taglib指令等。page指令page指令用于定義JSP文件中的全局屬性,這些屬性影響整個(gè)JSP文件(整個(gè)編譯后的類文件)。

屬性描述缺省值language定義要使用的腳本語(yǔ)言。如果在將來(lái)JSP包容器支持多種語(yǔ)言時(shí)可使用它“Java”import定義以逗號(hào)分隔的類或包的列表,就像在通常的Java代碼中所使用的import語(yǔ)句那樣缺省情況下忽略,但已經(jīng)引入4個(gè)包buffer定義對(duì)客戶的輸出流的緩沖模型。如果值為“none”,則沒有緩沖,而是所有的輸出都被PrintWriter直接寫到ServletResponse中。如果定義了緩沖區(qū)的尺寸(如“24kb”),則將輸出寫到不小于該值的緩沖區(qū)中與實(shí)現(xiàn)有關(guān);至少為8KBautoFlush如果值為“true”,則當(dāng)緩沖區(qū)滿時(shí),自動(dòng)把輸出緩沖輸出給客戶如果值為“false”,則當(dāng)緩沖區(qū)滿時(shí),會(huì)有一個(gè)運(yùn)行時(shí)異?!皌rue”isThreadSafe如果值為“true”,則JSP引擎會(huì)同時(shí)向該頁(yè)面發(fā)送多個(gè)客戶請(qǐng)求。如果值為“false”,則JSP引擎會(huì)對(duì)發(fā)送給該頁(yè)面的客戶請(qǐng)求進(jìn)行排隊(duì)和處理,并且按照請(qǐng)求被收到的順序,在某個(gè)時(shí)刻只處理一個(gè)請(qǐng)求(庫(kù)操作)?!皌rue”contentType定義JSP的字符編碼方式和JSP頁(yè)面的應(yīng)答的MIME類型。它的形式可以為MIMETYPE或“MIMETYPE;charset=CHARSET”。 MIMETYPE的缺省值為text/html;CHARSET的缺省值為ISO-8859-1Info頁(yè)面信息,通過(guò)頁(yè)面的Servlet.getServletInfo()來(lái)獲得頁(yè)面可以被訪問(wèn)的內(nèi)容的類型。無(wú)缺省extends轉(zhuǎn)換成servlet時(shí)指定父類無(wú)缺省isErrorPage布爾值,為true,jsp容器會(huì)自動(dòng)產(chǎn)生Exception對(duì)象。false由版本確定include指令include指令被用來(lái)插入文本或者JSP文件,能將一個(gè)文件的內(nèi)容包括在另一個(gè)文件中,語(yǔ)法為:<%@includefile=”文件名稱”%>該指令的作用是在JSP頁(yè)面中該指令出現(xiàn)的位置靜態(tài)的插入一個(gè)文件。所謂靜態(tài)插入,是指當(dāng)前的JSP頁(yè)面和被嵌入的文件合并成一個(gè)新的JSP頁(yè)面,然后JSP引擎再將這個(gè)新頁(yè)面轉(zhuǎn)換成Servlet。[程序代碼3-7.jsp][程序代碼nowtime.jsp]taglib指令聲明JSP文件使用了自定義的標(biāo)簽,同時(shí)引用標(biāo)簽庫(kù),也指定了它們的標(biāo)簽的前綴。語(yǔ)法格式如下:<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>屬性說(shuō)明如下:uri:解釋為統(tǒng)一資源標(biāo)記符,根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名。URI可以是URL(UniformResourceLocator)、URN(UniformResourceName)或一個(gè)路徑(相對(duì)或絕對(duì))。prefix:在自定義標(biāo)簽之前的前綴,比如,在<public:moon>中的public,如果這里不寫public,則標(biāo)簽moon的定義是非法的。[程序代碼3-8.jsp]JSP動(dòng)作JSP動(dòng)作向其他服務(wù)器對(duì)象傳輸控制權(quán)或執(zhí)行操作,主要包括:

<jsp:include>、<jsp:param>、<jsp:forward>、<jsp:plugin>、<jsp:useBean>、 <jsp:setProperty>、<jsp:getProperty>等f(wàn)orword動(dòng)作標(biāo)記<jsp:forword>該動(dòng)作將當(dāng)前頁(yè)面的執(zhí)行過(guò)程終止,忽略它的輸出,并且把請(qǐng)求轉(zhuǎn)向一個(gè)新的頁(yè)面。語(yǔ)法為:

<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>或者

<jsp:forwardpage={"relativeURL"|"<%=expression%>"}>

<jsp:paramname="parameterName"value="{paramterValue|<%=expression%>}"/>

</jsp:forward>

其中page屬性-指定替代地址,可為靜態(tài)值,也可在請(qǐng)求時(shí)計(jì)算。[程序代碼3-8.jsp][程序代碼disp.htm]注意<jsp:forward>標(biāo)簽以后的代碼,將不能執(zhí)行。使用jsp:forward語(yǔ)句時(shí),JSP頁(yè)面必須使用緩沖機(jī)制,不能將buffer屬性設(shè)為none。否則它將清空緩存里的內(nèi)容,瀏覽器里將得不到任何輸出。include動(dòng)作標(biāo)記<jsp:include>可將外部的靜態(tài)或者動(dòng)態(tài)資源包括在當(dāng)前頁(yè)面的輸出結(jié)果中,動(dòng)作語(yǔ)法如下:

<jsp:includepage={"relativeURL|<%=expression%>"}flush="true"/>或者

<jsp:includepage={"relativeURL|<%=expression%>"}flush="true">

<jsp:paramname="parameterName"value="{paramterValue|<%=expression%>}"/>

</jsp:include>其屬性含義如下:page屬性:要插入當(dāng)前頁(yè)面的文檔flush屬性:是否刷新當(dāng)前頁(yè)面的緩沖器,flush默認(rèn)為false,應(yīng)該置為ture<jsp:param>:指定附加的request參數(shù)[程序代碼3-9.jsp]param動(dòng)作標(biāo)記<jsp:param>標(biāo)記用于將附加request參數(shù)發(fā)送至轉(zhuǎn)發(fā)的頁(yè),可與<jsp:include>和<jsp:forward>標(biāo)記一起使用。語(yǔ)法形式為:<jsp:paramname="名字"value="名字對(duì)應(yīng)的值"/>其中:name屬性:指定參數(shù)的名稱value屬性:指定參數(shù)的值[程序代碼3-10.jsp][程序代碼forfoward.jsp]plugin動(dòng)作標(biāo)記<jsp:plugin>動(dòng)作為Web開發(fā)人員提供了一種在JSP文件中嵌入客戶端運(yùn)行的Java程序(如:Applet、JavaBean)的方法。該動(dòng)作將導(dǎo)致在客戶端瀏覽器中運(yùn)行一個(gè)指定的applet或者JavaBean,并且如果在必要的時(shí)候還需要下載一個(gè)Java插件<jsp:plugin>用來(lái)產(chǎn)生客戶端瀏覽器的特別標(biāo)記object或者embed,當(dāng)jsp頁(yè)面把結(jié)果發(fā)送到瀏覽器時(shí),<jsp:plugin>標(biāo)記被替換成<object>或者<embed>。[程序代碼3-11.jsp][程序代碼showmsg.java]內(nèi)置對(duì)象為了便于Web應(yīng)用程序的開發(fā),在JSP頁(yè)面中內(nèi)置了一些默認(rèn)的對(duì)象,這些對(duì)象不需要預(yù)先聲明就可以在腳本代碼和表達(dá)式中直接使用。這些內(nèi)置對(duì)象也稱為隱含對(duì)象。JSP提供了以下9種預(yù)先定義的內(nèi)置對(duì)象。隱含對(duì)象說(shuō)明類型request客戶端的請(qǐng)求,,如果客戶的請(qǐng)求中有參數(shù),則該對(duì)象就有一個(gè)參數(shù)列表。javax.servlet.http.HttpServletRequestresponse處理服務(wù)器端對(duì)客戶端的一些響應(yīng)javax.servlet.http.HttpServletResponsepageContext提供了訪問(wèn)和放置頁(yè)面中共享數(shù)據(jù)的方式j(luò)avax.servlet.jsp.PageContextsession保存單個(gè)用戶訪問(wèn)時(shí)的一些信息javax.servlet.http.HttpSessionapplication保存網(wǎng)站的一些全局變量javax.servlet.ServletContextout把信息回送到客戶端的瀏覽器中javax.servlet.jsp.JspWriterconfig代碼段的配置對(duì)象javax.servlet.ServletConfigpageJSP頁(yè)面本身java.lang.ObjectexceptionJSP頁(yè)面運(yùn)行時(shí)拋出的異常java.lang.ThrowableRequest對(duì)象Request對(duì)象是實(shí)現(xiàn)javax.servlet.HttpServletRequest接口的類的一個(gè)實(shí)例,代表客戶端的請(qǐng)求信息,主要用于接受客戶端通過(guò)HTTP協(xié)議傳送給服務(wù)器端的數(shù)據(jù),比如:JSP文件目錄、客戶端的地址、以及服務(wù)器的端口等。[程序代碼3-12.jsp]方法名語(yǔ)法功能getParmaeterStringgetParameter(Stringusemame1);StringgetParameter(Stringuserkey1);返回特定請(qǐng)求參數(shù)名的值,如果這個(gè)參數(shù)不存在則返回空值。請(qǐng)求參數(shù)是指隨請(qǐng)求一起發(fā)送的特殊信息getAttributeObjectgetAttribute(Stringname)以對(duì)象的形式返回特定名稱的屬性值。這個(gè)方法允許Servlet引擎給出一個(gè)客戶請(qǐng)求的特定信息。如果所給名稱的屬性不存在,則返回空值。getAttributeNamesEnumerationgetAttributeNames()返回一個(gè)請(qǐng)求中有效屬性名的枚舉。如果請(qǐng)求中不包含有效屬性則返回一個(gè)空的枚舉對(duì)象。getContentLengthintgetContentLength()以字節(jié)為單位,返回一個(gè)請(qǐng)求中所包含內(nèi)容的長(zhǎng)度,從請(qǐng)求對(duì)象的輸入流中獲得。getContentTypeStringgetContentType()返回一個(gè)請(qǐng)求中內(nèi)容的MIME類型,如果類型未知,則為空值。getCharacterEncodingStringgetCharacterEncoding()返回一個(gè)字符串,表示字符編碼方式。當(dāng)request沒有使用編碼方式時(shí),字符串為空。getParameterNamesEnumerationgetParameterNames()返回一個(gè)包含字符串對(duì)象的枚舉,其中的字符串標(biāo)示request對(duì)象中的參數(shù)名。如果一個(gè)request對(duì)象中沒有參數(shù)或輸入流為空時(shí),則返回一個(gè)空枚舉對(duì)象。getParameterValuesStringgetParameterValues(Stringname)返回值:返回指定參數(shù)的所有值。name為字符串,表示被請(qǐng)求的參數(shù)名。返回針對(duì)一個(gè)請(qǐng)求參數(shù)的所有取值的字符串?dāng)?shù)組,若參數(shù)不存在,則返回空值??衫么朔椒ǐ@得查詢字符串或post方法發(fā)送的form數(shù)據(jù)中包括的值。若參數(shù)是單值的,數(shù)組長(zhǎng)度為1getServerPortintgetServerPort()返回接受此請(qǐng)求的端口號(hào)getServerNameStringgetServerName()返回接受此請(qǐng)求的服務(wù)器主機(jī)名getRemoteAddrStringgetRemoteAddr()返回發(fā)送request的客戶的IP地址getRemoteHostStringgetRemoteHost()用以返回發(fā)送請(qǐng)求的客戶機(jī)的全名getRealPathStringgetRealPath(Stringpath)用以獲取實(shí)際路徑setAttributesetAttribute(Stringstr,Objectobj)參數(shù)str,是一個(gè)標(biāo)識(shí)屬性名的字符串;obj,是一個(gè)包含請(qǐng)求上下文的對(duì)象。用以保存一個(gè)屬性到請(qǐng)求上下文中,請(qǐng)求之中的屬性被重置。getCookiesCookie[]getCookies()返回瀏覽器伴隨此次請(qǐng)求所發(fā)送的所有Cookie。如果瀏覽器未發(fā)送Cookie,則返回空值。getQueryStringStringgetQueryString()返回一個(gè)字符串,表示請(qǐng)求URL后的查詢字符串,若沒有查詢字符串,則返I空串。getRequestURlStringgetRequestURI()返回一個(gè)字符串,表示在HTTP請(qǐng)求中獲得第一行請(qǐng)求URL中的從協(xié)議名到詢字符串之間的部分。getSessionHttpSessiongetSession()獲得當(dāng)前關(guān)聯(lián)到請(qǐng)求的HttpSession對(duì)象Response對(duì)象Response對(duì)象實(shí)現(xiàn)HttpServletResponse接口,可對(duì)客戶的請(qǐng)求做出動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù),如Cookie、HTTP文件頭信息等,一般是HttpServlet.Response類或其子類的一個(gè)對(duì)象。[程序代碼3-13.jsp][程序代碼3-14.jsp]方法用法addCookie(Cookiecookie)添加一個(gè)Cookie對(duì)象,用來(lái)保存客戶端的用戶信息,用request的getCookies()方法可以獲得這個(gè)CookieaddHeader(Stringname,Stringvalue)添加HTTP文件頭,該header將會(huì)傳到客戶端去,如果有同名的header存在,那么原來(lái)的header將會(huì)被覆蓋掉。containsHeader(Stringname)判斷指定名字的HTTP文件頭是否存在,并返回布爾值sendError(intsc)向客戶端發(fā)送錯(cuò)誤信息,例如,505指示服務(wù)器內(nèi)部錯(cuò)誤;404指示網(wǎng)頁(yè)找不到的錯(cuò)誤。setHeader(Stringname,Stringvalue)設(shè)定指定名字的HTTP文件頭的值,如果該值存在,那么它會(huì)被新的值覆蓋setContenType(Stringtype)響應(yīng)設(shè)置內(nèi)容類型頭。sendRedirect(URL)可以將用戶重定向到一個(gè)不同的頁(yè)面(URL)Session對(duì)象Session是一種服務(wù)器個(gè)別處理與記錄用戶端上網(wǎng)使用者信息的技術(shù)。當(dāng)使用者與服務(wù)器聯(lián)機(jī)時(shí),服務(wù)器可以給每一個(gè)上網(wǎng)的使用者一個(gè)Session并設(shè)定其中的內(nèi)容,這些Session都是個(gè)別獨(dú)立的,服務(wù)器端可以借此來(lái)辨別使用者信息進(jìn)而提供個(gè)別的服務(wù)。

session對(duì)象是java.servlet.http.HttpSession類的子類的對(duì)象,它表示當(dāng)前的用戶會(huì)話信息。在session中保存在對(duì)象在當(dāng)前用戶連接的所有頁(yè)面中都是可以被訪問(wèn)到的。[程序代碼3-15.jsp]方法說(shuō)明getAttribute(Stringname) 獲得指定名字的屬性,如果該屬性不存在,將會(huì)返回nullgetAttributeNames() 返回Session對(duì)象中存儲(chǔ)的每個(gè)屬性對(duì)象,結(jié)果集是一個(gè)Enumeration類的實(shí)例setAttribute(Stringname,java.lang.Objectvalue)設(shè)定指定名字的屬性值,并且把它存儲(chǔ)在Session對(duì)象中isNew() 判斷目前Session是否為新的Session,若是則返回ture,否則返回falsegetId() 返回Session對(duì)象在服務(wù)器端的編號(hào)。每生成一個(gè)Session對(duì)象,服務(wù)器都會(huì)給它一個(gè)編號(hào),并且該編號(hào)不會(huì)重復(fù),這樣服務(wù)器才能根據(jù)編號(hào)來(lái)識(shí)別Session,并且正確的處理某一特定的Session及其提供的服務(wù)getCreationTime() 返回Session對(duì)象被創(chuàng)建的時(shí)間,單位為毫秒getLastAccessedTime() 返回當(dāng)前Session對(duì)象最后一次被操作的時(shí)間,時(shí)間的單位為毫秒getMaxInactiveInterval() 獲取Session對(duì)象的生存時(shí)間,時(shí)間的單位為秒setMaxInactiveInterval(intinterval) 設(shè)置Session的有效時(shí)間(也叫超時(shí)時(shí)間),時(shí)間的單位為秒removeAttribute(Stringname)刪除指定的屬性(包含屬性名、屬性值)。Application對(duì)象Application對(duì)象是javax.servlet.ServletContext類的一個(gè)實(shí)例,存儲(chǔ)有關(guān)文檔運(yùn)行環(huán)境的信息。和Session對(duì)象相比,含義更加廣泛,在使用Session對(duì)象時(shí),各個(gè)客戶端共享一個(gè)Session對(duì)象,而使用Application對(duì)象時(shí),在同一個(gè)服務(wù)器中的JSP文件共享一個(gè)Application對(duì)象。[程序代碼3-16.jsp]方法功能getAttribute(Stringname)返回由name指定名字的Application對(duì)象屬性的值,這是個(gè)Object對(duì)象,如果沒有,就返回null。getAttributeNames()返回所有Application對(duì)象的屬性的名字,結(jié)果集是一個(gè)Enumeration(枚舉)類的實(shí)例getInitParameter(Stringname)返回由name指定的名字的application對(duì)象的某個(gè)屬性的初始值,如果沒有參數(shù),就返回nullgetServerInfo()返回servlet編譯器當(dāng)前版本信息setAttribute(Stringname,Objectobject)將參數(shù)Object指定的對(duì)象obj添加到application對(duì)象中,并為添加的對(duì)象指定一個(gè)屬性。exception對(duì)象與錯(cuò)誤處理exception對(duì)象是java.lang.Throwable類的一個(gè)實(shí)例,Exception對(duì)象可以配合page指令一起使用,page指令中errorPage和isErrorPage屬性可以為頁(yè)面提供錯(cuò)誤處理機(jī)制。errorPage用來(lái)設(shè)定當(dāng)JSP頁(yè)面出現(xiàn)異常(Exception)時(shí),所要轉(zhuǎn)向的頁(yè)面。如果沒有設(shè)定,則JSP容器會(huì)用默認(rèn)的當(dāng)前網(wǎng)頁(yè)來(lái)顯示出錯(cuò)信息。例如:“<%@pageerrorPage="/error/error_page.jsp"%>”isErrorPage用來(lái)設(shè)定當(dāng)前的JSP頁(yè)面是否作為傳回錯(cuò)誤頁(yè)面的網(wǎng)頁(yè),默認(rèn)值是“false”。如果設(shè)定為“true”,則JSP容器會(huì)在當(dāng)前的頁(yè)面中生成一個(gè)exception對(duì)象。Exception對(duì)象的主要方法為:getMessage():返回錯(cuò)誤信息。printStackTrace():以標(biāo)準(zhǔn)錯(cuò)誤的形式輸出一個(gè)錯(cuò)誤和錯(cuò)誤的堆棧。toString():以字符串的形式返回一個(gè)對(duì)異常的描述。[程序代碼3-17.jsp]其它內(nèi)置對(duì)象

page對(duì)象:page對(duì)象處理當(dāng)前請(qǐng)求的JSP頁(yè)的實(shí)現(xiàn)類的實(shí)例。page對(duì)象在頁(yè)的正文中可以被看作“this”的同義詞。page對(duì)象的范圍是page。Out對(duì)象:out對(duì)象主要用來(lái)向客戶端輸出各種數(shù)據(jù)類型的內(nèi)容。out對(duì)象的生命周期是當(dāng)前頁(yè)面。因此對(duì)于每一個(gè)JSP頁(yè)面,都有一個(gè)out對(duì)象。Out對(duì)象的主要方法為out.print(類型)或out.println(類型)其它內(nèi)置對(duì)象Config對(duì)象:是JSP頁(yè)面通過(guò)JSPcontainer進(jìn)行初始化時(shí)被傳遞的對(duì)象。Config對(duì)象具有Web服務(wù)器所需的多種環(huán)境設(shè)定值,簡(jiǎn)單點(diǎn)說(shuō),Config對(duì)象就是提供對(duì)初始化JSP的配置數(shù)據(jù)的訪問(wèn)。方法功能getInitParameter()以字符串類型返回指定初始參數(shù)的內(nèi)容,如果參數(shù)不存在,則返回nullgetInitParameterNames()以Enumeration類型返回所有初始參數(shù)的名稱,如果沒有初始化參數(shù),則返回nullgetServletContext()返回的Servlet是屬于哪一個(gè)applicationgetServletName()以字符串類型返回Servlet的名稱其它內(nèi)置對(duì)象pageContext對(duì)象:提供了訪問(wèn)其他隱含對(duì)象的方法方法說(shuō)明

HttpSessiongetSession()返回當(dāng)前頁(yè)中的session對(duì)象

ServletRequestgetRequest()返回當(dāng)前頁(yè)的request對(duì)象

ServletResponsegetResponse()返回當(dāng)前頁(yè)的response對(duì)象

ServletConfiggetServletConfig()返回當(dāng)前頁(yè)的config對(duì)象

ServletContextgetServletContext()返回當(dāng)前頁(yè)的application對(duì)象表單數(shù)據(jù)的讀取取得客戶端表單數(shù)據(jù)主要利用request對(duì)象的方法。文本框數(shù)據(jù)的提交在HTML文件中,把文本框分為單行文本框、密碼框和滾動(dòng)文本框。說(shuō)明: 在文本域中輸入的數(shù)據(jù)使用‘\n’作為換行符,而在HTML中‘\n”并不能起到換行的作用。需要使用replaceAll(Stringsource,Stringdest)方法將讀取數(shù)據(jù)中的‘\na”替換為“<br>",從而解決換行問(wèn)題。[程序代碼3-18.htm][程序代碼3-18.jsp]注意:漢字問(wèn)題JSP頁(yè)面中出現(xiàn)漢字問(wèn)題的主要原因是:客戶端和服務(wù)器用gb2312對(duì)漢字編碼,而HTTP傳輸漢字用ISO8859_1編碼。1.對(duì)讀取表單數(shù)據(jù)的處理當(dāng)利用request.getParameter得到Form種元素的時(shí)候,默認(rèn)的情況字符編碼為ISO-8859-1,這種編碼不能正確的顯示漢字??梢宰x取表單數(shù)據(jù)前用setCharacterEncoding()方法來(lái)設(shè)定request對(duì)象的編碼格式簡(jiǎn)體中文的編碼為GB2312:<%request.setCharacterEncoding(“GB2312");%>另一種方法是讀取表單數(shù)據(jù)后轉(zhuǎn)換字符編碼:<%Stringname=request.getParameter(“tt”);name=newString(name.getBytes("ISO-8859-1"),"gb2312");%>2.保證JSP向客戶端輸出時(shí)采用中文編碼方式,即首先在JSP源代碼中加入以下一行:<%@pagecont

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論