Java Web程序開(kāi)發(fā)與分析課件:JSP內(nèi)置對(duì)象(一)_第1頁(yè)
Java Web程序開(kāi)發(fā)與分析課件:JSP內(nèi)置對(duì)象(一)_第2頁(yè)
Java Web程序開(kāi)發(fā)與分析課件:JSP內(nèi)置對(duì)象(一)_第3頁(yè)
Java Web程序開(kāi)發(fā)與分析課件:JSP內(nèi)置對(duì)象(一)_第4頁(yè)
Java Web程序開(kāi)發(fā)與分析課件:JSP內(nèi)置對(duì)象(一)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JavaWeb程序設(shè)計(jì)

——JSP內(nèi)置對(duì)象(1)2主要內(nèi)容JSP內(nèi)置對(duì)象JSP內(nèi)置對(duì)象概述request對(duì)象response對(duì)象3JSP內(nèi)置對(duì)象

由于JSP和Web容器緊密耦合,因此在JSP中有9個(gè)內(nèi)置對(duì)象(也稱(chēng)隱式對(duì)象)可直接使用在JSP頁(yè)面的腳本元素中。

內(nèi)置對(duì)象中封裝了許多Web應(yīng)用中必要的信息,這些對(duì)象實(shí)質(zhì)是servlet中相應(yīng)接口的實(shí)例。

4JSP內(nèi)置對(duì)象JSP的內(nèi)置對(duì)象在頁(yè)面被請(qǐng)求時(shí)初始化,并存在于Web容器的運(yùn)行時(shí)環(huán)境中,因此,JSP開(kāi)發(fā)人員總是能在腳本表達(dá)式和腳本段scriptlet中訪(fǎng)問(wèn)內(nèi)置對(duì)象,而不能在腳本聲明中使用內(nèi)置對(duì)象。JSP內(nèi)置對(duì)象有各自的作用域,用戶(hù)也只能在其作用域中對(duì)其訪(fǎng)問(wèn)。

5JSP內(nèi)置對(duì)象

在JSP頁(yè)面中內(nèi)置了一些默認(rèn)的對(duì)象,這些對(duì)象在使用時(shí)不需要預(yù)先聲明,直接可以在代碼中使用??梢允褂玫膬?nèi)置對(duì)象有9個(gè),分別為:

request,response,out,session,application,pageContext,config,page,exception.

6(1)request與response對(duì)象request與response對(duì)象是構(gòu)建JSP網(wǎng)頁(yè)交互功能的最重要的兩個(gè)內(nèi)置對(duì)象,與HTML窗體標(biāo)簽有著密切的關(guān)系。

request對(duì)象能夠接收瀏覽器向服務(wù)器所發(fā)送的請(qǐng)求信息,如:讓服務(wù)器取得用戶(hù)在網(wǎng)頁(yè)表單中所輸入的數(shù)據(jù)內(nèi)容;

response則提供服務(wù)器端程序響應(yīng)客戶(hù)端所需信息的功能,即將數(shù)據(jù)從服務(wù)器端發(fā)送到客戶(hù)端。7session與application基本上被使用于記錄和處理JSP網(wǎng)頁(yè)之間的共享數(shù)據(jù)。例如:當(dāng)一份網(wǎng)頁(yè)文件從服務(wù)器傳送到客戶(hù)端的瀏覽器后,客戶(hù)端與服務(wù)器端就沒(méi)有任何聯(lián)機(jī)狀態(tài)存在,使得網(wǎng)頁(yè)無(wú)法存儲(chǔ)Web應(yīng)用程序運(yùn)行期間所需的共享數(shù)據(jù),而session與application就是來(lái)解決這個(gè)問(wèn)題的。(2)session與application對(duì)象8JSP頁(yè)面是一種動(dòng)態(tài)網(wǎng)頁(yè),一個(gè)JSP文件在服務(wù)器端運(yùn)行,會(huì)根據(jù)各種條件和情況將數(shù)據(jù)處理結(jié)果呈現(xiàn)給客戶(hù)端。

out對(duì)象能夠使服務(wù)器端所要輸出的內(nèi)容,動(dòng)態(tài)地寫(xiě)入傳送給客戶(hù)端的網(wǎng)頁(yè)中。(3)out對(duì)象exception對(duì)象為JSP提供用于處理程序運(yùn)行錯(cuò)誤的異常對(duì)象,同時(shí)提供一定功能的異常處理機(jī)制。(4)exception對(duì)象9

這3個(gè)對(duì)象被用于存取JSP網(wǎng)頁(yè)程序運(yùn)行階段的各種信息內(nèi)容,JSP可以應(yīng)用它們存取JSP網(wǎng)頁(yè)運(yùn)行期間的各種環(huán)境信息。其中,config包含JSP網(wǎng)頁(yè)被編譯成Servlet類(lèi)之后的相關(guān)信息,可用來(lái)獲取服務(wù)器初始化參數(shù);pageContext對(duì)象是當(dāng)前頁(yè)面的上下文對(duì)象,提供系統(tǒng)運(yùn)行期間各種信息內(nèi)容的存取操作;page代表目前正在運(yùn)行的JSP網(wǎng)頁(yè)對(duì)象。(5)config、pageContext與page對(duì)象10主要內(nèi)容JSP內(nèi)置對(duì)象JSP內(nèi)置對(duì)象概述request對(duì)象response對(duì)象11request對(duì)象主要用于接收客戶(hù)端通過(guò)Http協(xié)議傳輸?shù)椒?wù)器端的數(shù)據(jù)。在客戶(hù)端請(qǐng)求中,如果有參數(shù),則request對(duì)象就有一個(gè)參數(shù)列表,其作用域就是一次request請(qǐng)求。

request對(duì)象包括很多的方法,如:

getParameter(Stringname)getParameterNames()getParameterValues(Stringname)getServerPort()……request對(duì)象12

在request對(duì)象的諸多方法中,其中,getParameter(Stringname),getParameterValues(Stringname),getParameterNames()為最為常用的方法。(1)StringgetParameter(Stringname)

該方法的主要作用和特點(diǎn)為:在表單、超鏈接、<jsp:param>進(jìn)行傳遞參數(shù)的時(shí)候,使用該方法獲取參數(shù)值;

request對(duì)象應(yīng)用實(shí)例13

該方法返回給定參數(shù)的值(字符串類(lèi)型),當(dāng)傳遞給該方法的參數(shù)名name沒(méi)有實(shí)際參數(shù)與之對(duì)應(yīng),將返回null。例:使用request對(duì)象,在一個(gè)JSP頁(yè)面中輸入數(shù)據(jù),在另一個(gè)JSP頁(yè)面中將所輸入的數(shù)據(jù)顯示出來(lái)。14“requestInfo.jsp”文件<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>Inserttitlehere</title></head>15

<body><formname="form1"method="post"action="showing.jsp"><palign="center">用戶(hù)名:<inputtype="text"name="username"></p><palign="center">密

碼:<inputtype="password"name="password"></p><palign="center"><inputtype="submit"name="Submit"value="提交">  <inputname="cancel"type="reset"id="cancel"value="取消"></p></form></body></html>Form表單16<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>……“showing.jsp”文件:17<body><%out.print("用戶(hù)名:"+request.getParameter("username")+"<BR>");out.print("密碼:"+request.getParameter("password")+"<BR>");}%></body></html>18運(yùn)行結(jié)果:19運(yùn)行結(jié)果:20(2)EnumerationgetParameterNames()

該方法能夠得到客戶(hù)端提交的所有參數(shù)的名稱(chēng),其返回值為枚舉類(lèi)型:Enumeration.例:在上例”requestInfo.jsp”頁(yè)面的基礎(chǔ)上,通過(guò)循環(huán)可獲得客戶(hù)端提交的所有的參數(shù)的名字:21“requestInfo.jsp”文件內(nèi)容不變;

“showing.jsp”文件內(nèi)容為:

<%@pagelanguage=“java”import=“java.util.*”contentType=“text/html;charset=gb2312”

pageEncoding=“gb2312”%>

<%

request.setCharacterEncoding(“gb2312”);

%>

……設(shè)置request對(duì)象的編碼方式22<body>

<%

Enumerationenu=request.getParameterNames();

while(enu.hasMoreElements()){

StringparameterName=(String)enu.nextElement();

StringparameterValue=(String)request

.getParameter(parameterName);

out.print("參數(shù)名稱(chēng):"+parameterName+"<BR>");

out.print("參數(shù)內(nèi)容:"+parameterValue+"<BR>");

}

%>

</body>

</html>獲取參數(shù)名23運(yùn)行結(jié)果:24運(yùn)行結(jié)果:25例:在頁(yè)面的超鏈接中帶有參數(shù)的情況

<ahref=“showing.jsp?name=javaweb”>超鏈接

</a>

獲取超鏈接所帶的參數(shù),同樣采用方法:

Stringstr=request.getParameter(“name”);超鏈接參數(shù)name26

使用該方法能夠取出變量的多個(gè)值,返回值為字符串?dāng)?shù)組String[];主要應(yīng)用在獲取復(fù)選框或是下拉列表multiple屬性的值。例如:

<%

String[]select=request.getParameterValues(“tree");

if(select!=null){

for(inti=0;i<select.length;i++){

out.println(select[i]+"");

}

}

%>(3)String[]getParameterValues(Stringname)Tree為下拉列表,可以選擇多個(gè)值27主要內(nèi)容JSP內(nèi)置對(duì)象JSP內(nèi)置對(duì)象概述request對(duì)象response對(duì)象28

response對(duì)象,是用于將服務(wù)器數(shù)據(jù)發(fā)送到客戶(hù)端,以響應(yīng)客戶(hù)端的請(qǐng)求。response對(duì)象實(shí)現(xiàn)了HttpServletResponse接口,對(duì)客戶(hù)端的請(qǐng)求作出響應(yīng),向客戶(hù)端發(fā)送數(shù)據(jù),如:Cookie,HTTP文件頭信息等。其常用的方法有:

sendRedirect(StringredirectURL)setContentType(StringcontentType)setHeader(Stringname,Stringvalue)setStatus(intn)addCookie(Cookiecookie)response對(duì)象29

該方法用來(lái)改變JSP頁(yè)面的的contentType的屬性值,可設(shè)置的輸出數(shù)據(jù)的類(lèi)型主要如下:

text/html:網(wǎng)頁(yè)

text/plain:純文本

application/x-msexcel:Excel文件

application/msword:Word文件(1)setContentType(Stringtype)30

例:使用setContentType()方法改變JSP頁(yè)面的contentType屬性值。

<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">31<%

Stringstr=request.getParameter("submit");

if(str==null){

str="";

}

if(str.equals("yes")){

response.setContentType("application/msword;charset=GB2312");

}

%>

32<html>

<head>

<title>SetContentType</title>

</head>

<body>

<P>將當(dāng)前頁(yè)面保存為word文檔嗎?

<FORMmethod="get"name="form"action=“”>

<INPUTTYPE="submit"value="yes"name="submit">

</FORM>

</body>

</html>33運(yùn)行結(jié)果:34運(yùn)行結(jié)果:35

該方法能夠?qū)崿F(xiàn)客戶(hù)端頁(yè)面的重定向,即從當(dāng)前頁(yè)面引導(dǎo)至另一個(gè)頁(yè)面中。

response.sendRedirect()方法將重定向的URL地址發(fā)送給客戶(hù)端,瀏覽器再根據(jù)URL地址重新請(qǐng)求,會(huì)在客戶(hù)端呈現(xiàn)跳轉(zhuǎn)后的URL地址,也稱(chēng)為客戶(hù)端跳轉(zhuǎn)。

response.sendRedirect()方法可以帶參數(shù):

xxx.jsp?param1=yyy&…(2)sendRedirect(StringredirectURL)36例:在”Redirect.jsp”頁(yè)面中,輸入用戶(hù)名,然后將頁(yè)面重定向到sendRedirect.jsp頁(yè)面,并顯示輸入的用戶(hù)名。

37”Redirect.jsp”文件<body><formmethod=postaction=Redirect.jsp>

輸入用戶(hù)名:

<inputtype=textname=name><inputtype=submitvalue=login></form><%Stringname=request.getParameter("name");if(name!=null){response.sendRedirect("sendRedirect.jsp?sendname="+name);}%></body></html>38<body><%Stringsendname=request.getParameter("sendname");%>用戶(hù)名:<%=sendname%></body></html>”sendRedirect.jsp”文件

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論