版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之互聯(lián)網(wǎng)實(shí)習(xí)總結(jié)
- 2024年無(wú)機(jī)械動(dòng)力飛機(jī)項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 《侵犯人身權(quán)利罪》課件
- 銀行員工績(jī)效評(píng)估制度
- 酒店餐飲服務(wù)流程優(yōu)化與提升制度
- 【大學(xué)課件】學(xué)習(xí)科學(xué)與技術(shù)
- 《保險(xiǎn)業(yè)務(wù)需求分析》課件
- 學(xué)生關(guān)于珍愛(ài)生命的演講稿(34篇)
- 陜西省咸陽(yáng)市武功縣2024屆九年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024數(shù)字醫(yī)療年度創(chuàng)新白皮書(shū) 醫(yī)療大模型開(kāi)啟“百模大戰(zhàn)”數(shù)字醫(yī)療單筆融資創(chuàng)紀(jì)錄
- 中華人民共和國(guó)文物保護(hù)法
- 2024《整治形式主義為基層減負(fù)若干規(guī)定》全文課件
- 常用統(tǒng)計(jì)軟件應(yīng)用智慧樹(shù)知到期末考試答案章節(jié)答案2024年揚(yáng)州大學(xué)
- 中國(guó)法律史-第三次平時(shí)作業(yè)-國(guó)開(kāi)-參考資料
- 區(qū)域分析與規(guī)劃智慧樹(shù)知到期末考試答案章節(jié)答案2024年寧波大學(xué)
- 食品營(yíng)養(yǎng)學(xué)(暨南大學(xué))智慧樹(shù)知到期末考試答案2024年
- 2024年全國(guó)高考物理電學(xué)實(shí)驗(yàn)真題(附答案)
- 國(guó)有企業(yè)合規(guī)管理
- 《膽囊癌診斷和治療指南》(2023年版)解讀
- GB/T 17646-2017小型風(fēng)力發(fā)電機(jī)組
- 教科版科學(xué)五年級(jí)上冊(cè)科學(xué)復(fù)習(xí)計(jì)劃
評(píng)論
0/150
提交評(píng)論