JSP期末復(fù)習(xí)資料_第1頁
JSP期末復(fù)習(xí)資料_第2頁
JSP期末復(fù)習(xí)資料_第3頁
JSP期末復(fù)習(xí)資料_第4頁
JSP期末復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Jsp期末復(fù)習(xí)資料習(xí)題部分第一章JSP概述1.JSP技術(shù)是由A語言作為腳本語言。A.JavaB.C++C.C#D.C2.Web是與平臺(tái)無關(guān)、分布式的、圖形化的和易于導(dǎo)航的,定義了客戶端和服務(wù)器端怎樣通信。3.HTTP(超文本傳播協(xié)議)是一種Internet上常見的協(xié)議,用于傳播超文本標(biāo)識(shí)語言(HTML)編寫的文獻(xiàn),也就是一般所說的網(wǎng)頁。4.網(wǎng)站一般分為3層,分別是顧客界面交互層、應(yīng)用程序?qū)?、?shù)據(jù)庫層。5.Servlet的生命周期是載入、初始化、執(zhí)行和刪除。6.JSP技術(shù)是在老式的網(wǎng)頁文獻(xiàn)HTML中加入java程序片段和JSP標(biāo)識(shí)構(gòu)建的JSP網(wǎng)頁7.什么是C/S構(gòu)造?什么是B/S構(gòu)造??jī)烧哂墒裁磪^(qū)別?答:C/S是Client/Server(客戶機(jī)/服務(wù)器)構(gòu)造,B/S是Browser/Server(瀏覽器/服務(wù)器)構(gòu)造。B/S構(gòu)造是三層體系構(gòu)造,B/S構(gòu)造規(guī)定客戶端只需要安裝一種瀏覽器(Browser),客戶端通過瀏覽器將祈求發(fā)送給Web服務(wù)器,Web服務(wù)器負(fù)責(zé)與后端數(shù)據(jù)庫服務(wù)器進(jìn)行數(shù)據(jù)通信;C/S構(gòu)造是二層構(gòu)造平臺(tái)模式,C/S構(gòu)造規(guī)定客戶端要安裝指定的軟件,客戶端負(fù)責(zé)執(zhí)行前端的數(shù)據(jù)處理,服務(wù)端進(jìn)行后端的服務(wù)處理。8.簡(jiǎn)述JSP技術(shù)和Servlet技術(shù)的區(qū)別和聯(lián)絡(luò)。?區(qū)別:⑴JSP技術(shù)重要用來體現(xiàn)頁面,而Servlet技術(shù)重要用來完畢大量的邏輯處理。⑵JSP重要用來發(fā)送給前端的顧客,而Servlet重要來響應(yīng)顧客的祈求,完畢祈求的邏輯處理。?聯(lián)絡(luò):在實(shí)際開發(fā)中,往往先把JSP頁面開發(fā)出來,然后再將JSP代碼轉(zhuǎn)換成Servlet。試驗(yàn)三:<%=1+1%>第二章jsp實(shí)現(xiàn)網(wǎng)站計(jì)數(shù)器BufferedReader類的作用是用來從字符輸出流中讀取文本并將字符存入緩沖區(qū)以便能提供字符、數(shù)組的高效讀取。FileReader類的作用是用來讀取文獻(xiàn)字符。FileOutputStream類的close()措施的作用是A。關(guān)閉流返回與目前流有關(guān)的文獻(xiàn)描述符將指定字節(jié)寫入目前文獻(xiàn)輸出流當(dāng)這個(gè)文獻(xiàn)輸出流不再有引用時(shí),保證調(diào)用它的close措施BufferedReader類的read()措施的作用是D。關(guān)閉流跳過n個(gè)字符讀取一文本行讀一種字符作為措施的返回值。假如返回值是-1,則表達(dá)文獻(xiàn)結(jié)束在動(dòng)態(tài)Web項(xiàng)目中創(chuàng)立名為test的JSP文獻(xiàn),在test.Jsp中申明變量Stringcontent=“你好,小明!”,然后在test.jsp中輸出content的內(nèi)容。<%!Stringcontent=“你好,小明!”%><%=content%>運(yùn)用JSP技術(shù)實(shí)目前網(wǎng)頁中顯示目前系統(tǒng)時(shí)間。<%out.println(newjava.util.Date())%>試驗(yàn)一、Stringrecord=“Java你好”;StringFilePath=“c:\\count.txt”;PrintWriterpw=null;pw=newPrintWriter(newFileOutputStream(FilePath));pw.write(record);pw.close();二、Stringrecord=null;StringFilePath=“c:\\count.txt;BufferedReaderbr=null;br=newBufferedReader(newFileReader(FilePath)); record=br.readLine();out.println(record);pw.close();三、(2)record+=“不錯(cuò)的技術(shù)”;第三章jsp實(shí)現(xiàn)顧客注冊(cè)1.HTML是超文本標(biāo)識(shí)語言,是網(wǎng)絡(luò)上的通用語言。作用是用于對(duì)WWW頁面內(nèi)容的格式進(jìn)行闡明。2.JSP中的9個(gè)內(nèi)建對(duì)象為request、response、session、application、pageContext、out、config、page、exception3.request對(duì)象的作用是處理祈求信息,兩個(gè)重要的措施為getParameter()和getParameterValues()4.response對(duì)象的作用是處理JSP生成的響應(yīng)并將響應(yīng)發(fā)送給客戶端,兩個(gè)重要措施為setContentType()和senRedirect()5.在Java中連接數(shù)據(jù)庫需要用B。A.ODBCB.JDBCC.JNDID.DMBS6.過濾器是D。A.JSPB.一般的ServletC.Java類D.特殊的Servlet7.分別指出JSP中9個(gè)內(nèi)建對(duì)象的作用范圍request祈求對(duì)象類型javax.servlet.ServletRequest作用域Requestresponse響應(yīng)對(duì)象類型javax.servlet.SrvletResponse作用域PagepageContext頁面上下文對(duì)象類型javax.servlet.jsp.PageContext作用域Pagesession會(huì)話對(duì)象類型javax.servlet.http.HttpSession作用域Sessionapplication應(yīng)用程序?qū)ο箢愋蚸avax.servlet.ServletContext作用域Applicationout輸出對(duì)象類型javax.servlet.jsp.JspWriter作用域Pageconfig配置對(duì)象類型javax.servlet.ServletConfig作用域Pagepage頁面對(duì)象類型javax.lang.Object作用域Pageexception例外對(duì)象類型javax.lang.Throwable作用域pagepage:對(duì)象只能在創(chuàng)立它的JSP頁面中被訪問request:對(duì)象可以在與創(chuàng)立它的JSP頁面監(jiān)聽HTTP祈求相似的任意一種JSP中被訪問session:對(duì)象可以在與創(chuàng)立它的JSP頁面共享相似的HTTP會(huì)話的任意一種JSP頁面中被訪問application:對(duì)象可以在與創(chuàng)立它的JSP頁面屬于相似網(wǎng)絡(luò)應(yīng)用程序的任意一種JSP頁面中被訪問。使用HTML設(shè)計(jì)一種顧客注冊(cè)頁面,規(guī)定使用到文本框、密碼框、單項(xiàng)選擇按鈕、復(fù)選按鈕、下拉列表、文本域、確認(rèn)按鈕和取消按鈕。(詳見代碼)P44-46第3章試驗(yàn)一、P44-46二、<%Stringname=request.getParameter("username");Stringpws=request.getParameter("password");out.println("顧客名:"+name+"<br>");out.println("密碼:"+pws+”<br>);out.println("得到客戶端向服務(wù)器端傳送數(shù)據(jù)的方式:"+request.getMethod()+"<br>");out.println("得到客戶端的端口:"+request.getRemotePort()+"<br>");out.println("得到服務(wù)器的端口號(hào):"+request.getServerPort()+"<br>");out.println("得到服務(wù)器的名稱:"+request.getServerName()+"<br>");out.println("得到祈求的客戶端地址:"+request.getRequestURL()+"<br>");%>三、P63第四章JSP與Servlet實(shí)現(xiàn)顧客登錄1.Servlet中的4個(gè)常用措施分別為doGet()、doPost()、init()和destroy()。2.描述Servlet跳轉(zhuǎn)祈求的文獻(xiàn)是C。A.Servlet類B.JSP界面C.web.xmlD.Java類3.在JSP頁面中顯示顧客信息的兩種措施是<%out.print();%>和<%=%>。4.Servlet中實(shí)現(xiàn)頁面跳轉(zhuǎn)的兩種措施是使用response.sendRedirect()進(jìn)行重定位和使用request.getRequestDispatcher().forward()措施。5.Session對(duì)象實(shí)現(xiàn)的是A接口。A.javax.servlet.http.HttpSessionB.javax.servlet.http.HttpServletRequestC.javax.servlet.http.HttpServletRequestD.javax.servlet.ServletContext6.session對(duì)象的作用是什么??jī)煞N常用的措施各是什么?Session的作用是表達(dá)個(gè)別顧客的會(huì)話狀態(tài)。兩種常用的措施是:setAttribute()措施和getAttribute()措施。7.JSP與Servlet的開發(fā)模式的長(zhǎng)處各是什么?JSP的長(zhǎng)處:大大簡(jiǎn)化和以便頁面的編寫和修改,比較適合處理顯示的部分,可以向Java代碼嵌入HTML元素。Servlet的長(zhǎng)處:善于處理邏輯的部分,可以向Java代碼寫入HTML元素。第4章試驗(yàn)一、參照P73-76只需將P76(time2-time1)>30000改為10000即可。其他修改處如處理的頁面等。二、在1.jsp中有session.setAttribute(“message”,“session是非常重要的內(nèi)建對(duì)象”);在2.jsp中有<%=session.getAttribute(“message”);%>即可。但需注意在頁面指令中session不可設(shè)置為false.試驗(yàn)三創(chuàng)建login頁面簡(jiǎn)樸,注意action的值,method的值決定了在servlet中使用哪個(gè)措施doPost()中部分代碼:(先獲取值)PreparedStatementstmt=conn.prepareStatement(“select*fromuserswhereusername=?andpassword=?”);stmt.setString(1,username);stmt.setString(2,password);rs=stmt.executeQuery();while(rs.next()){session.set………….;返回;}第五章JSP與JavaBean實(shí)現(xiàn)顧客信息查詢JSP中有幾種指令?A。(Page和Include)A.2B.4C.6D.8JSP中有幾種動(dòng)作指令?C。A.2B.4C.6D.8JavaBean是一種可反復(fù)使用的軟件組件,實(shí)際上就是一種Java類,作用是提供了隨時(shí)隨地進(jìn)行復(fù)制和粘貼的功能。創(chuàng)立一種JavaBean要符合3點(diǎn)規(guī)定分別為必須有一種無參數(shù)的公有的構(gòu)造措施,當(dāng)類里沒有構(gòu)造措施時(shí)默認(rèn)的就是無參公有的、對(duì)于想要使用到的屬性都定義成私有變量和對(duì)定義的私有變量要有與它相對(duì)應(yīng)的get和set措施。get和set措施。必須有與變量相似的名稱,但第一種字母要大寫。闡明JSP中每個(gè)動(dòng)作指令的作用。Include指令的作用:用來包括一種動(dòng)態(tài)或靜態(tài)的資源;Forword指令的作用:容許祈求轉(zhuǎn)發(fā)到另一種JSP、Servlet或者HTML文獻(xiàn);Plugin指令的作用:用于產(chǎn)生客戶端瀏覽器的尤其標(biāo)簽(Object或者Embed);useBean指令的作用:用來在JSP頁面創(chuàng)立一種JavaBean的實(shí)例指定它的名字及作用范圍;setProperty指令的作用:用來設(shè)置JavaBean中的屬性值;getProperty指令的作用:用來獲取Bean屬性的值,并將它轉(zhuǎn)化為字符串,然后在輸出的頁面顯示。使用Bean的3個(gè)動(dòng)作指令,完畢一種猜數(shù)的小程序。當(dāng)客戶訪問getNumber.jsp時(shí),隨機(jī)獲得一種1-100之間的整數(shù),由顧客猜這個(gè)數(shù)是什么,在文本框內(nèi)數(shù)值提交后,使用Bean(GuessNumber.java)判斷猜數(shù)題對(duì)的,然后在guess.jsp頁面中顯示猜數(shù)狀況。頁面效果如圖5-10和圖5-11所示。()packagecom.games;importjava.lang.*;importjava.util.*;publicclassGuessNumber{privateintanswer;privateinttotal=0;publicGuessNumber(){reset();}publicintgetAnswer(){returnanswer;}publicStringisRight(intmyanswer){Stringmessage=null;total++;if(myanswer<answer)message="你猜了"+total+"次<br>你上次猜的數(shù)為"+myanswer+"<br>猜小了。<br>再猜一次<br>";if(myanswer>answer)message="你猜了"+total+"次<br>你上次猜的數(shù)為"+myanswer+"<br>猜大了。<br>再猜一次<br>";if(myanswer==answer)message="你猜了"+total+"次<br>你上次猜的數(shù)為"+myanswer+"<br>猜對(duì)了。<br>";returnmessage;}publicvoidreset(){aswer=(int)(Math.random()*100)+1;//Math.abs(newRandom().nextInt()%100)+1; total=0;}}第5章試驗(yàn)一、見P104-108二、P91將SQL語句中的like改為=三、JavaBean中的屬性:sNosNamesexdepartment措施:構(gòu)造,set和get措施Java類中措施:構(gòu)造措施(加載驅(qū)動(dòng),建立連接),查詢顧客的措施(返回值為L(zhǎng)ist,使用JavaBean對(duì)數(shù)據(jù)進(jìn)行封裝。顯示:第七章JSP實(shí)現(xiàn)留言板1.JSP提供了一種B來使JSP的開發(fā)更輕易,也更便于維護(hù)。JavaBeanB.標(biāo)簽庫C.自定義標(biāo)簽D.內(nèi)建對(duì)象機(jī)制JSP標(biāo)簽庫是一種通過JavaBean生成基于XML腳本的措施。自定義標(biāo)簽實(shí)質(zhì)是C。運(yùn)行一種接口的JavaBeanB.運(yùn)行幾種接口的JavaBeanC.運(yùn)行一種或幾種接口的JavaBeanD.XML文獻(xiàn)自定義標(biāo)簽的長(zhǎng)處有分離了程序邏輯和表達(dá)邏輯、將Java代碼從HTML中剝離,便于美工維護(hù)頁面、減少了JSP頁面中的腳本,減少了維護(hù)成本和提供了可重用的功能組件。自定義JSP標(biāo)簽的關(guān)鍵是D。JavaBeanB.TLD文獻(xiàn)C.web.xmlD.標(biāo)簽處理創(chuàng)立一種JSP分頁標(biāo)簽需要哪些環(huán)節(jié)?將標(biāo)簽導(dǎo)入到JSP頁面中(導(dǎo)入標(biāo)簽庫);從標(biāo)簽庫中調(diào)用自定義標(biāo)簽實(shí)現(xiàn)分頁效果。簡(jiǎn)述自定義標(biāo)簽。自定義標(biāo)簽是顧客自定義的Java語言元素,實(shí)質(zhì)是運(yùn)行一種或者幾種接口的JavaBean;可以很緊密地和JSP邏輯表達(dá)聯(lián)絡(luò)在一起,又具有和一般JavaBean同樣的業(yè)務(wù)邏輯處理能力;可操作默認(rèn)對(duì)象,處理表單數(shù)據(jù),訪問數(shù)據(jù)庫及其他企業(yè)服務(wù)。重要由JavaBeans、標(biāo)簽處理器、標(biāo)簽庫的描述文獻(xiàn)(TLD文獻(xiàn))、web.xml文獻(xiàn)和在JSP頁面申明自定義標(biāo)簽等五個(gè)元素構(gòu)成。第八章JSP實(shí)現(xiàn)對(duì)XML讀寫XML是可拓展標(biāo)識(shí)語言,是一種與平臺(tái)無關(guān)的標(biāo)識(shí)數(shù)據(jù)的措施。在每一種XML文檔中有A根元素。(有且只能有一種)一種B.兩個(gè)C.三個(gè)D.四個(gè)DTD(文獻(xiàn)類型定義)是一種保證XML文檔格式對(duì)的的有效措施,可以比較XML文檔和DTD文獻(xiàn)來看文檔與否符合規(guī)范,元素和標(biāo)簽使用與否對(duì)的。在XML規(guī)范中,內(nèi)置屬性與自定義的屬性最大區(qū)別是內(nèi)置屬性名稱以“xml:”開頭,而自定義屬性名不能以“xml:”開頭,否則在解析時(shí)會(huì)發(fā)生錯(cuò)誤。如下哪個(gè)符號(hào)代表標(biāo)識(shí)出現(xiàn)的次數(shù)必須在一次以上?C?(不出現(xiàn)或者只出現(xiàn)一次)B.*(不出現(xiàn)或者可出現(xiàn)多次)C.+(必須出現(xiàn)一次以上)D.無符號(hào)(只能出現(xiàn)一次)XML文檔的邏輯構(gòu)造由哪幾部分構(gòu)成?XML文檔一般以一種XML申明開始;通過XML元素來組織XML數(shù)據(jù);XML元素包括標(biāo)識(shí)和字符數(shù)據(jù);為了組織數(shù)據(jù)能更以便、清晰,XML在字符數(shù)據(jù)引入CDATA數(shù)據(jù)塊;在文檔中引入注釋;需要給XML處理程序提供某些指示信息,XML文檔中可以包括處理指令。創(chuàng)立XML時(shí)需要注意哪幾點(diǎn)?所有的XML文檔都必須有一種根元素;所有的XML元素都必須有一種結(jié)束標(biāo)簽;標(biāo)簽辨別大小寫;所有的XML元素都必須對(duì)的嵌套;屬性必須包括在開始標(biāo)簽中,并在兩邊加上引號(hào)。XML語言的長(zhǎng)處有哪幾點(diǎn)?XML是專為Internet設(shè)計(jì)的標(biāo)識(shí)語言;XML提供了一種邏輯數(shù)據(jù)構(gòu)造,該構(gòu)造在便于人閱讀的同步,也非常輕易被引用程序處理;一份XML文檔可以被任何與XML兼容的語法分析程序或者應(yīng)用程序接受;XML是用于定義數(shù)據(jù)和元數(shù)據(jù)的語法。第九章JSP,JavaBean與Servlet實(shí)現(xiàn)投票系統(tǒng)JSP+Servlet+JavaBean的開發(fā)模式屬于B。JSPModelIB.JSPModelIIC.MVCJSPModelII與JSPModelI的區(qū)別是JSPModelI程序可讀性高,可反復(fù)運(yùn)用率高,缺乏流程控制;JSPModelII開發(fā)流程更明確,關(guān)鍵的程序管控,維護(hù)輕易,學(xué)習(xí)時(shí)間和開發(fā)時(shí)間較長(zhǎng)。最大的區(qū)別是引入了MVC模式。MVC模式中處理數(shù)據(jù)對(duì)象的是C。ModelB.ViewC.ControllerMVC將應(yīng)用程序分為3個(gè)關(guān)鍵模塊、分別是模型、視圖和控制器。MVC的作用是什么?答:MVC強(qiáng)制性的把輸入、處理和輸出分開,實(shí)現(xiàn)了功能模塊與顯示模塊的分離,3個(gè)關(guān)鍵模塊:模型、視圖和控制器,分別擔(dān)當(dāng)不一樣的任務(wù),提高了應(yīng)用系統(tǒng)的可維護(hù)性、可拓展型、可移植性和組件的可復(fù)用性。第十章基于JSP技術(shù)開發(fā)新聞公布系統(tǒng)在需求分析中處在主導(dǎo)地位的是A。顧客B.需求分析師C.項(xiàng)目經(jīng)濟(jì)D.程序員明確設(shè)計(jì)的數(shù)據(jù)庫將要完畢哪些功能的階段是B。數(shù)據(jù)庫概念構(gòu)造設(shè)計(jì)B.數(shù)據(jù)庫需求分析C.數(shù)據(jù)庫邏輯構(gòu)造設(shè)計(jì)需求分析從廣義上理解是需求分析包括需求的獲取、分析、規(guī)格闡明、變更、驗(yàn)證及管理一系列需求工程,從狹義上理解是需求分析就是指需求的分析、定義過程。需求分析階段的4個(gè)方面工作分別為問題識(shí)別、分析與綜合、制定規(guī)格闡明和評(píng)審。JavaScript是一種新的描述語言,可以被嵌入到HTML文獻(xiàn)中。需求分析的概念是什么?作用是什么?、答:需求分析是指理解顧客需求,就軟件功能與客戶到達(dá)一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目代價(jià),最終形成開發(fā)計(jì)劃的一種復(fù)雜過程。它具有決策性、方向性和方略性的作用。數(shù)據(jù)庫的設(shè)計(jì)過程有哪些?分別有什么作用?答:數(shù)據(jù)庫的設(shè)計(jì)包括數(shù)據(jù)庫需求分析、數(shù)據(jù)庫概念構(gòu)造設(shè)計(jì)和數(shù)據(jù)庫邏輯構(gòu)造設(shè)計(jì)。數(shù)據(jù)庫需求分析階段明確了設(shè)計(jì)的數(shù)據(jù)庫將要完畢哪些功能。數(shù)據(jù)庫概念構(gòu)造設(shè)計(jì)階段將分析的成果通過E-R圖形式體現(xiàn)出來。數(shù)據(jù)庫邏輯構(gòu)造設(shè)計(jì)階段是將數(shù)據(jù)庫概念設(shè)計(jì)階段的成果轉(zhuǎn)化為某種數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型。書本部分知識(shí)要點(diǎn):第一章Jsp腳本語言是:java語言。Jsp:一種動(dòng)態(tài)網(wǎng)頁技術(shù)原則。Web:定義了Web客戶端(Web瀏覽器)和Web服務(wù)端怎樣通信Java特點(diǎn):面向?qū)ο蟮木幊陶Z言,分布式、高度安全、多線程的語言。B/S構(gòu)造:Browser/Server(瀏覽器/服務(wù)器)C/S構(gòu)造:Client/Server網(wǎng)站構(gòu)造3層:顧客界面交互層、應(yīng)用程序?qū)印?shù)據(jù)庫層Eclipse配置:環(huán)境變量中輸入“java_HOME”,系統(tǒng)變量中加入:“;%java_HOME%\bin”Servlet使用前準(zhǔn)備:搭建Web項(xiàng)目Jsp的長(zhǎng)處:跨平臺(tái)(支持的平臺(tái)眾多)、提供更好的安全機(jī)制、是一種開放的原則、組件編寫更輕易,性能更優(yōu)、支持多線程、可和JDBC等眾多主流數(shù)據(jù)庫連接。Tomcat默認(rèn)端口:8080Servlet措施:doGet()處理HTTP的GET祈求;doPost()處理HTTP的POST祈求;(相比doGet更好)init()初始化;destroy()卸載Servlet在哪對(duì)Servlet配置:web.xml瀏覽器的地址欄:http://localhost:8080/webjsp/Servlet(邏輯名)<%!%>Jsp的申明,措施也放在其中<%%>java代碼<%=%>jsp體現(xiàn)式第二章BufferedRead類用來從字符輸入流中讀取文本并將字符存入緩沖區(qū)以便能提供字符、數(shù)組的高效讀取。StringreadLine()讀取一文本行。FileReader類用來讀取字符文獻(xiàn)。Voidclose()關(guān)閉流。網(wǎng)站計(jì)數(shù)器:<body><%Stringrecord=null;//從文本中讀取出來的內(nèi)容信息BufferredReaderbr=null;//讀文本文獻(xiàn)中的數(shù)據(jù)StringFilePath=“c:\\count.txt";PrintWriterpw=null;//數(shù)據(jù)寫入文本文獻(xiàn)br=newBufferedReader(newFileReader(FilePath));//讀record=br.readLin();//讀第一行if(record==null){recor="1";}else{record=(Integer.parseInt(record)+1)+""'}%>您是第<%=record%>位訪問者。<%pw=newPrintWriter(newFileOutputStream(FilePath));//寫入pw.write(record);//打印到文本上pw.close();%></body>第三章內(nèi)建對(duì)象application對(duì)象:存在于整個(gè)Web服務(wù)器運(yùn)行期間,期間所有顧客共用一種application對(duì)象,這一點(diǎn)與session對(duì)象是不一樣的。作用:獲得或更改Servlet的設(shè)定,并表達(dá)JSP頁面所屬的應(yīng)用程序。作用域:application常用措施:voidsetAttribute(Stringname,Objectvalue):講一種對(duì)象放到application對(duì)象中。voidgetAttribute(Stringname):根據(jù)名稱取值。...request對(duì)象:表客戶端對(duì)網(wǎng)頁的祈求,并使用HTTP協(xié)議處理客戶端的祈求。作用域:request常用措施;StringgetParameter(Stringname):根據(jù)頁面表單組件名稱獲取祈求頁面提交數(shù)據(jù)。String[]getParameterValues(Stringname):獲取頁面祈求中一種表單組件對(duì)應(yīng)多種值時(shí)的顧客祈求數(shù)據(jù)。getProtocol():獲取客戶端與服務(wù)器端傳送數(shù)據(jù)所依賴的協(xié)議名稱。...response對(duì)象:處理湖祈求響應(yīng)。常用措施;voidsetContentType(Stringname):設(shè)置作為響應(yīng)生成內(nèi)容的類型和字符編碼。voidsendRedirect(Stringname),:發(fā)送一種響應(yīng)給瀏覽器,致使其應(yīng)祈求另一種URL。...自動(dòng)刷新:response.setIntHeader("Refresh",10).10秒刷新一次。跳轉(zhuǎn)措施:response.setHeader(“Refresh”,“10,URL=")。中文轉(zhuǎn)換:(不明確)request:1、setCharacterEncoding()2、pageEncoding3、window->prefrecense4、servletJDBC的4中驅(qū)動(dòng)模式:JDBA-ODBC橋;當(dāng)?shù)亟涌谂cJava程序相結(jié)合;面向數(shù)據(jù)庫中間件;直接連接。插入一條記錄取Statement語句或PrepareStatement。例子:1、Statementst=conn.createStatement();st.execute("insertintousers(username,password,sex)values('"+王+"','"+ws123+"'"+男+")”);2、PrepareStatementstmt=conn.prepareStatement(“insertintousers(username,password,sex)values(?,?,?)");stmt.setString(1,王);stmt.setString(2,ws123);stmt.setString(3,男);stmt.execute();第四章P67頁代碼4-1:看Login作為<servlet-name>要與<servlet-mapping>標(biāo)簽中的<servlet-name>相對(duì)應(yīng),及名稱相似,在<url-pattern>中(與訪問網(wǎng)

址中的大小寫相似,默認(rèn)狀況大寫)可不辨別大小寫。Servlet實(shí)現(xiàn)頁面跳轉(zhuǎn):措施一:使用response.sendRedirect()進(jìn)行重定位;只能在Servlet寫的頁面間進(jìn)行跳轉(zhuǎn)。措施二:request.getRequestDispatcher().forward措施;可從Servlet寫的跳到JSP寫的頁面。session對(duì)象:表達(dá)目前個(gè)別顧客的會(huì)話狀態(tài)。常用措施:setAttribute(Stringname,java.long.Object):將顧客名保留在Session中使用;getAttribute("username"):在另一種JSP頁面得到這個(gè)顧客名。顧客登錄界面:<body><%if(request.getParameter("username")!=null&&request.getParameter("password")!=null){Stringusername=(String)request.getParameter("username");//得顧客名Stringusername=(String)request.getParameter("password");if(username.equals("admin")&&password.equals("admin")){session.setAttribute("message","登錄成功");//信息保留到session中session.setAttribute("username",username);response.sendRedirect("show,jsp");}else{%>顧客名或密碼錯(cuò)誤<%}%><formaction="login.jsp"method="post"><table>trtd<inputtype="text/password/submit/reset"name/value=""</body>第五章JavaBean:是一種可反復(fù)使用的組件,并對(duì)數(shù)據(jù)進(jìn)行封裝的java類。創(chuàng)立:JavaBeanjb=newJavaBean();packagecom.jsp.query;publicclassJavaBean{privateStringname;//使用到的屬性都定義為私有變量privateStringpassword;publicJavaBean(){//無參的公有構(gòu)造函數(shù),也可省略}//定義的私有變量在get/set中首字母要大寫publicStringgetName(){//對(duì)應(yīng)name的get措施,返回值為namereturnname;}publicStringsetName(Stringname){=name;}publicStringgetPassword(){returnpassword;}publicStringsetPassword(Stringpassword){this.password=password;}}include指令:包括一種靜態(tài)資源時(shí),JSP編譯器不執(zhí)行次文獻(xiàn),僅將資源加載JSP中包括一種動(dòng)態(tài)資源時(shí),JSP編譯器會(huì)執(zhí)行它。forward指令:<jsp:forward>標(biāo)簽是容許祈求轉(zhuǎn)發(fā)到另一種JSP,Servlet或HTML文獻(xiàn)。格式:例子<body><jsp:forwardpage="forwardTo.jsp"><jsp:paramname="tag"value="forward"/>//此為有參數(shù)跳轉(zhuǎn),若為無參數(shù)跳轉(zhuǎn),則只需第一行即可</jsp:forward></body>結(jié)束之后,地址欄出現(xiàn)變化,假設(shè)<jsp:forwardpage="page2.jsp"/>,則地址欄中出現(xiàn)的page1.jsp;而用

request.getRequestURL()得到為"http://localhost:8080/page2.jsp"useBean指令:屬性:ip="beanInstanceName";大小寫敏感scope="page|request|session|application"(Bean只能在使用頁面時(shí)使用|在對(duì)其發(fā)出祈求時(shí)存在|一直存在于會(huì)話中,直到終止

或被刪除|在整個(gè)應(yīng)用程序中都可使用)class="package.class"type="package.clall"beanName="{package.class|<%=expression%>}"type="package.class"連接數(shù)據(jù)庫://加載JDBC-ODBC橋驅(qū)動(dòng)程序ClassforName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=test?

user=sa&password=&useUnicode=true&characterEncoding=gb2312);//有數(shù)據(jù)庫連接對(duì)象conn生成數(shù)據(jù)庫語句對(duì)象stmtStatementstmt=conn.createStatement();分頁和排序:看<%@pagelanguage="java"import="java.util.*,mypage.*,java.sql.*"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSPstartingpage</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body>一下是分頁顯示的效果:<br><%intpagecount=0;intpagesize=10;intpagenumber=1;intj=1; if(request.getParameter("page")==null) { ;}else{ pagenumber=Integer.parseInt(request.getParameter("page"));}ResultSetrs=null;Connectiontosqlcon=newConnectiontosql();intnum=con.sum();rs=con.check();pagecount=(num-1)/pagesize+1;if(pagenumber!=1)rs.absolute((pagenumber-1)*pagesize); while(rs.next()&&(j<=pagesize)){%><%out.print(rs.getString(1));out.print(rs.getString(2));out.print(rs.getString(3));out.print(rs.getString(4));j++;%><p><%}%><%for(inti=1;i<=pagecount;i++){%><ahref="mypage.jsp?page=<%=i%>"><%=i%></a> <%}%></body></html>實(shí)例代碼部分一:網(wǎng)站計(jì)數(shù)器①要有一種count.txt文獻(xiàn):<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="gb2312"import="java.lang.*,java.io.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>網(wǎng)站計(jì)數(shù)器</title></head><body> <% Stringrecord=null; BufferedReaderbr=null; StringFilePath="D:/java/jsp/count/count.txt"; PrintWriterpw=null; br=newBufferedReader(newFileReader(FilePath)); record=br.readLine(); if(record==null){ record="1"; } else{ record=(Integer.parseInt(record)+1)+""; } %> 您是第<%=record%>位訪問者。 <% pw=newPrintWriter(newFileOutputStream(FilePath)); pw.write(record); pw.close(); %></body></html>②顯示變量:<%Stringcontent="你好,小明!";out.print(content);%>③顯示時(shí)間:Import=”java.util.*”;<%=newDate()%>二:顧客注冊(cè)界面Register.jspImport=”java.util.*”;<%request.setCharacterEncoding("gb2312");%><formaction="check.jsp"method="post">顧客名:<inputtype="text"name="usename"/>密碼:<inputtype="password"name="password"/>確認(rèn)密碼:<inputtype="password"name="repassword"/>性別:<inputtype="radio"name="sex"value="male"checked/>男 <inputtype="radio"name="sex"value="female"/>女職業(yè):<selectsize="1"name="work"> <optionselected="selected">學(xué)生</option> <option>職工</option> <option>經(jīng)理</option> <option>軍人</option> <option>自由人</option> </select>個(gè)人愛好:<inputtype="checkbox"name="love"value="電腦網(wǎng)絡(luò)"/>電腦網(wǎng)絡(luò) <inputtype="checkbox"name="love"value="影視娛樂"/>影視娛樂 <inputtype="checkbox"name="love"value="棋牌娛樂"/>棋牌娛樂 <inputtype="checkbox"name="love"value="讀書讀報(bào)"/>讀書讀報(bào) <inputtype="checkbox"name="love"value="美酒佳肴"/>美酒佳肴 <inputtype="checkbox"name="love"value="繪畫書法"/>繪畫書法個(gè)人闡明:<textareaname="show"rows="15"cols="40"></textarea><inputtype="submit"value="提交"/><inputtype="reset"value="重置"/>Check.jspimport="java.util.*,java.sql.*";<% request.setCharacterEncoding("gb2312"); Stringname=(String)request.getParameter("usename"); Stringpassword=(String)request.getParameter("password"); Stringrepassword=(String)request.getParameter("repassword"); if(!password.equals(repassword)){ out.print("errorofpasswordagain"); } Stringsex=(String)request.getParameter("sex"); Stringwork=(String)request.getParameter("work"); String[]love=(String[])request.getParameterValues("love"); Stringshow=(String)request.getParameter("show"); StringstrLove=""; for(inti=0;i<love.length;i++){ if(strLove.trim().equals("")){ strLove=strLove+"'"+love[i].toString()+"'";} else{strLove=strLove+",'"+love[i].toString()+"'";}} if(strLove.trim().substring(0,strLove.trim().length()).equals(",")){strLove=strLove.trim().substring(0,strLove.trim().length()-1);} Connectionconn=null; PreparedStatementstmt=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); stmt=conn.prepareStatement("insertintoregister(姓名,密碼,性別,職業(yè),個(gè)人愛好,個(gè)人闡明)values(?,?,?,?,?,?)"); stmt.setString(1,name); stmt.setString(2,password); stmt.setString(3,sex); stmt.setString(4,work); stmt.setString(5,strLove); stmt.setString(6,show); stmt.execute(); out.println("success"); }catch(SQLExceptione){ out.println("error"); }%>三:用servlet實(shí)現(xiàn)顧客注冊(cè)Login.jsp<formaction="Login"method="post">顧客名:<inputtype="text"name="usename"/>密碼:<inputtype="password"name="password"/><inputtype="submit"value="登錄"/><inputtype="reset"value="重置"/></form>新建一種包:com.jsp.servletLogin.javapackagecom.jsp.servlet;importjava.io.IOException;importjava.sql.*;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;publicclassLoginextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; publicvoidinit()throwsServletException{ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } } publicintqueryUser(Stringsql)throwsException{ intmessage=1; Connectionconn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); ResultSetrs=conn.prepareStatement(sql).executeQuery(); if(rs.next()){ message=rs.getInt(1); } returnmessage; } publicLogin(){} protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(); Stringusename=(String)request.getParameter("usename"); Stringpassword=(String)request.getParameter("password"); Stringsql="selectcount(*)fromuser1where姓名='"+usename+"'and密碼='"+password+"'"; Stringm=""; try{ intmessage=queryUser(sql); if(message==1){ m="success"; session.setAttribute("success",usename); session.setAttribute("success",password); request.getRequestDispatcher("/success.jsp").forward(request,response); } else{ m="error"; session.setAttribute("usename",usename); session.setAttribute("password",password); request.getRequestDispatcher("/error.jsp").forward(request,response); } }catch(Exceptione){ e.printStackTrace(); } }}Error.jsp<metahttp-equiv="refresh"content="10;url=/servletLogin/login.jsp">您輸入的顧客名為:<%=session.getAttribute("usename")%>密碼為:<%=session.getAttribute("password")%><br><fontsize="4"color="red">十秒鐘后返回登錄頁面</font>四:用javabean實(shí)現(xiàn)信息查詢queryUser.jspimport="com.jsp.query.*,java.util.*";<% request.setCharacterEncoding("gb2312"); DBManagermdb=newDBManager(); Stringmark=(String)request.getParameter("mark"); Stringusername=(String)request.getParameter("username")==null?"":(String)request.getParameter("username"); Stringwork=(String)request.getParameter("work")==null?"":(String)request.getParameter("work");%><formaction="queryUser.jsp"method="post">顧客名稱:<inputtype="text"name="username"/><inputtype="hidden"name="mark"value="0"/>顧客職業(yè): <selectsize="1"name="work"> <optionvalue="">--請(qǐng)選擇--</option> <optionselected="selected"value="學(xué)生">學(xué)生</option> <optionvalue="職工">職工</option> <optionvalue="經(jīng)理">經(jīng)理</option> <optionvalue="軍人">軍人</option> <optionvalue="自由人">自由人</option></select><inputtype="submit"value="查詢"><inputtype="reset"value="重置"></form><% if(username!=""||work!=""){ Listlist=mdb.queryUser(username,work); if(!list.isEmpty()){ %> <tableborder="1"> 顧客名稱 密碼 性別 職業(yè) 愛好 個(gè)人闡明 <% for(inti=0;i<list.size();i++){ JavaBeanjb=(JavaBean)list.get(i); %> <%=jb.getName()%> <%=jb.getPassword()%><%=jb.getSex()%> <%=jb.getWork()%> <%=jb.getLove()%> <%=jb.getShow()%> <%}%></table> <%}else{%> <fontsize="4"color="red">您輸入的查詢條件為顧客名:<%=username%>,職業(yè):<%=work%>,數(shù)據(jù)庫鐘沒有與之相對(duì)應(yīng)的信息</font> <%} }elseif(mark!=null&&mark.equals("0")){ %> <fontsize="4"color="red">請(qǐng)輸入查詢條件</font> <%}%>新建一種com.jsp.query包JavaBean.javapackagecom.jsp.query;publicclassJavaBean{ privateStringname; privateStringpassword; privateStringsex; privateStringwork; privateStringlove; privateStringshow; publicJavaBean(){} publicvoidsetName(Stringname){=name;} publicStringgetName(){returnname;} publicvoidsetPassword(Stringpassword){this.password=password;} publicStringgetPassword(){returnpassword;} publicvoidsetSex(Stringsex){this.sex=sex;} publicStringgetSex(){returnsex;} publicvoidsetWork(Stringwork){this.work=work;} publicStringgetWork(){returnwork;} publicvoidsetLove(Stringlove){this.love=love;} publicStringgetLove(){returnlove;} publicvoidsetShow(Stringshow){this.show=show;} publicStringgetShow(){returnshow;}} 在com.jsp.query包里面DBManager.javapackagecom.jsp.query;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;publicclassDBManager{ privateConnectionconn=null; privatePreparedStatementstmt=null; privateResultSetrs=null; publicDBManager(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:webregister","sa",""); }catch(Exceptione){ System.out.print("error"); } } publicListqueryUser(Stringusername,Stringwork)throwsSQLException{ Listlist=newArrayList(); if(username==null||username.equals("")){ stmt=conn.prepareStatement("select*fromregister1where職業(yè)='"+work+"'"); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密碼")); jb.setSex(rs.getString("性別")); jb.setWork(rs.getString("職業(yè)")); jb.setLove(rs.getString("愛好")); jb.setShow(rs.getString("個(gè)人闡明")); list.add(jb); } }elseif(work==null||work.equals("")){ stmt=conn.prepareStatement("select*fromregister1where姓名='"+username+"'"); //stmt.setString(1,"%"+username+"%"); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密碼")); jb.setSex(rs.getString("性別")); jb.setWork(rs.getString("職業(yè)")); jb.setLove(rs.getString("愛好")); jb.setShow(rs.getString("個(gè)人闡明")); list.add(jb); } }else{ stmt=conn.prepareStatement("select*fromregister1where姓名='"+username+"'and職業(yè)='"+work+"'"); //stmt.setString(1,"%"+username+"%"); //stmt.setString(2,work); rs=stmt.executeQuery(); while(rs.next()){ JavaBeanjb=newJavaBean(); jb.setName(rs.getString("姓名")); jb.setPassword(rs.getString("密碼")); jb.setSex(rs.getString("性別")); jb.setWork(rs.getString("職業(yè)")); jb.setLove(rs.getString("愛好")); jb.setShow(rs.getString("個(gè)人闡明")); list.add(jb); } } returnlist; }}五:文獻(xiàn)上傳Smartupload.jsp<FORMMETHOD="POST"ACTION="upload.jsp"ENCTYPE="multipart/form-data"><INPUTTYPE="FILE"NAME="FILE1"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE2"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE3"SIZE="50"><BR><INPUTTYPE="FILE"NAME="FILE4"SIZE="50"><BR><INPUTTYPE="SUBMIT"VALUE="Upload"></FORM>Upload.jspimport="com.jspsmart.upload.*"<% intcount=0; SmartUploadmySmartUpload=newSmartUpload(); mySmartUpload.initialize(pageContext); mySmartUpload.setTotalMaxFileSize(100000); try{ mySmartUpload.upload(); count=mySmartUpload.save("/upload"); out.println(count+"file(s)uploaded."); }catch(Exceptione){ out.println(e.toString()); }%>文獻(xiàn)下載:Downloadhtml.jsp<ahref=”download.jsp”>download</a>Download.jsp<%@pagelanguage="java"import="com.jspsmart.upload.*"%><jsp:useBeanid="mySmartUpload"scope="page"class="com.jspsmart.upload.SmartUpload"/><% mySmartUpload.initialize(pageContext); mySmartUpload.downloadFile("d:\\df\\1.txt"); mySmartUpload.setContentDisposition("");%>六:留言板用javabean實(shí)現(xiàn)留言板Message.jspimport="com.jsp.query.*,java.util.*"<% request.setCharacterEncoding("gb2312"); DBManagermdb=newDBManager(); Stringtitle=(String)request.getParameter("title")==null?"":(String)request.getParameter("title"); Stringcontent=(String)request.getParameter("content")==null?"":(String)request.getParameter("content");%><formaction="message.jsp"method="post">留言標(biāo)題:<inputtype="text"name="title"><br>留言內(nèi)容:<textareaname="content"rows="10"cols="25"></textarea><br><inputtype="submit"value="提交"><inputtype="reset"value="重置"></form><% Listlist=mdb.queryUser(title,content); if(!list.isEmpty()){ for(inti=0;i<list.size();i++){ JavaBeanjb=(JavaBean)list.get(i); %> title:<fontsize="3"color="red"><%=jb.getTitle()%></font> content:<fontsize="3"color="red"> <%=jb.getContent()%></font> <br> <% } }%>在此中建立包:com.jsp.queryJavaBean.javapackagecom.jsp.query;publicclassJavaBean{ privateStringtitle; privateStringcontent; publicvoidsetTitle(Stringtitle){this.title=title;} publicStringgetTitle(){returntitle;} publicvoidsetContent(Stringcontent){this.content=c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論