《JavaWeb程序開發(fā)入門》課后練習(xí)(含答案)_第1頁
《JavaWeb程序開發(fā)入門》課后練習(xí)(含答案)_第2頁
《JavaWeb程序開發(fā)入門》課后練習(xí)(含答案)_第3頁
《JavaWeb程序開發(fā)入門》課后練習(xí)(含答案)_第4頁
《JavaWeb程序開發(fā)入門》課后練習(xí)(含答案)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章【測(cè)一測(cè)】1、請(qǐng)編寫一個(gè)格式良好的 XML文檔,要求包含足球隊(duì)一支,隊(duì)名為Madrid,球員5人:Ronaldo、Casillas、RamosModric、Benzema;籃球隊(duì)一支,隊(duì)名為L(zhǎng)akers,隊(duì)員2人:Oneal,Bryant。要含有注釋。2、在XMLSchem文檔中,定義一個(gè)雇員的年齡為 18?58周歲之間。請(qǐng)寫出相應(yīng)的元素聲明。第1題答案v?xmlversion="1.0"encoding="gb2312"standalone="yes"?><球隊(duì)列表><!--足球隊(duì)Madrid--〉<球隊(duì)類型="足球隊(duì)"><隊(duì)名>Madrid</隊(duì)名><隊(duì)員><姓名>Ronaldo</姓名><姓名>Casillas</姓名><姓名>Ramos<姓名><姓名>Modric</姓名><姓名>Benzema</姓名></隊(duì)員></球隊(duì)><!--籃球隊(duì)Lakers--><球隊(duì)類型="籃球隊(duì)"><隊(duì)名>Lakers</隊(duì)名><隊(duì)員><姓名>Oneal</姓名><姓名>Bryantv/姓名></隊(duì)員></球隊(duì)></球隊(duì)列表>第2題答案<xs:elementname="age">vxs:simpleType><xs:restrictionbase="xs:integer"><xs:minInclusivevalue="18"/><xs:maxInclusivevalue="58"/>

v/xs:restriction>v/xs:simpleType>v/xs:element>第二章【測(cè)一測(cè)】3種實(shí)現(xiàn)方式?welcome.html頁面1、 如何將web應(yīng)用發(fā)布到tomcat3種實(shí)現(xiàn)方式?welcome.html頁面2、 請(qǐng)問在chapter02應(yīng)用的web.xml文件中進(jìn)行哪些配置,可以將配置成該應(yīng)用的默認(rèn)頁面?第1題答案1、 直接將web應(yīng)用部署到tomcat/webapps下2、將web應(yīng)用通過tomcat/conf/server.xml 進(jìn)行配置3、 創(chuàng)建一個(gè)xml文件,并配置web應(yīng)用信息,將xml文件放置tomcat\conf\Catalina\localhost第2題答案在web-app標(biāo)簽中進(jìn)行如下配置即可:<welcome-file-list><welcome-file>welcome.htmlv/welcome-file></welcome-file-list>第三章【測(cè)一測(cè)】1、 簡(jiǎn)述HTTP1.1協(xié)議的通信過程?2、 簡(jiǎn)述POST請(qǐng)求和GET請(qǐng)求有什么不同?第1題答案1、客戶端與服務(wù)器端建立 TCP連接。2、 客戶端可以向服務(wù)器端發(fā)送多個(gè)請(qǐng)求,并且在發(fā)送下個(gè)請(qǐng)求時(shí),無需等待上次請(qǐng)求的返回結(jié)果。3、 服務(wù)器必須按照接受客戶端請(qǐng)求的先后順序依次返回響應(yīng)結(jié)果。4、 客戶端發(fā)出關(guān)閉TCP連接的請(qǐng)求5、 服務(wù)器端關(guān)閉TCP連接第2題答案1、 post專輸數(shù)據(jù)大小無限制2、 POSTALGET請(qǐng)求方式更安全第四章【測(cè)一測(cè)】1、 編寫一個(gè)servlet,實(shí)現(xiàn)統(tǒng)計(jì)網(wǎng)站被訪問次數(shù)的功能。2、請(qǐng)編寫一段程序,使程序能讀取該 servlet的配置信息,從中獲得參數(shù)名為 encoding對(duì)應(yīng)的參數(shù)值,并輸出到頁面上。第1題答案步驟如下:新建一個(gè)類ShowTimesServlet繼承HttpServlet,重寫doGet和doPost方法在doPost方法中調(diào)用doGet方法,在doGet方法中實(shí)現(xiàn)統(tǒng)計(jì)網(wǎng)站被訪問次數(shù)的功能,用戶每請(qǐng)求一次servlet,使訪問次數(shù)times加1獲取ServletContext ,通過它的功能記住上一次訪問后的次數(shù)具體代碼實(shí)現(xiàn)如下:importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassShowTimesServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{ServletContextcontext=getServletContext();Integertimes=(Integer)context.getAttribute("times");if(times==null){times=newInteger(1);}else{times=newlnteger(Value()+1);}//設(shè)置編碼,不然中文會(huì)變成亂碼resp.setContentType("text/html;charset=GB2312");//得到輸出流對(duì)象PrintWriterout=resp.getWriter();out.println("vhtml>vhead><title>");out.println(” 頁面訪問統(tǒng)計(jì)");out.println("v/title>v/head>vbody>");out.println(” 當(dāng)前頁面被訪問了");out.println("vfontcolor=redsize=20>"+times+"v/font> 次");//設(shè)置屬性,將times保存到當(dāng)前的上下文中context.setAttribute("times",times);}protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{this.doGet(req,resp);}}第2題答案importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassMyServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();ServletConfigconfig=getServletConfig();Stringparam=config.getInitParameter("encoding");out.println("encoding="+param);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doGet(request,response);}}第五章【測(cè)一測(cè)】

請(qǐng)按照以下要求設(shè)計(jì)一個(gè)實(shí)現(xiàn)下載資源防盜鏈的類。創(chuàng)建一個(gè)DownManagerServlet類,繼承HttpServlet類。在doGet()方法中,判斷是否可以進(jìn)行資源下載答案步驟如下:doGet()方法。方法得到字段創(chuàng)建一個(gè)DownManagerServlet類,使其繼承doGet()方法。方法得到字段在doGet()方法中,使用HttpServletRequest對(duì)象的getHeader("referer")referer的值,并判斷是否可以進(jìn)行資源下載。如果不能下載,則進(jìn)入下載頁。具體代碼實(shí)現(xiàn)如下:publicclassDownManagerServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();//獲取referer頭的值Stringreferer=request.getHeader("referer");//獲取訪問地址StringsitePart="http://"+request.getServerName();if(referer!=null&&referer.startsWith(sitePart)){//處理正在下載的請(qǐng)求out.println("dealingdownload…”);}else{//非法下載請(qǐng)求跳轉(zhuǎn)到 download.html頁面RequestDispatcherrd=request.getRequestDispatcher("/download.html");rd.forward(request,response);}}}第六章【測(cè)一測(cè)】1、 請(qǐng)使用Cookie技術(shù)實(shí)現(xiàn)顯示用戶上次訪問時(shí)間的功能2、請(qǐng)?jiān)O(shè)計(jì)一個(gè)類,使用 Session技術(shù)實(shí)現(xiàn)購物車功能。第1題答案步驟如下:創(chuàng)建一個(gè)LastAccessServlet類,使其繼承HttpServlet 類并重寫該類的doGet()方法。在doGet()方法中,使用request.getCookies() 得到所有cookie形成的cookie數(shù)組,并進(jìn)行遍歷。如果遍歷過程中找到 cookie信息中存在lastAccess屬性則輸出,否則創(chuàng)建 cookie對(duì)象,設(shè)置值為當(dāng)前時(shí)間并發(fā)送給客戶端。cookie的存活時(shí)間為1小時(shí),訪問當(dāng)前應(yīng)用中的所有資源客戶端都回送 cookie信息。具體代碼實(shí)現(xiàn)如下:packagecn.itcast.chapter06.cookie.example;importjava.io」0Exception;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassLastAccessServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");/**設(shè)定一個(gè)cookie的name:lastAccessTime*讀取客戶端發(fā)送cookie獲得用戶上次的訪問時(shí)間顯示 */StringlastAccessTime=null;//獲取所有的cookie,并將這些cookie存放在數(shù)組中Cookie[]cookies=request.getCookies();for(inti=0;cookies!=null&&ivcookies」ength;i++){if("lastAccess".equals(cookies[i].getName())){//如果cookie的名稱為lastAccess,則獲取該cookie的值lastAccessTime=cookies[i].getValue();break;}}//判斷是否存在名稱為 lastAccess的cookieif(lastAccessTime==null){response.getWriter().print(" 您是首次訪問本站??! !”);}else{response.getWriter().print(" 您上次的訪問時(shí)間"+lastAccessTime);}//創(chuàng)建cookie,將當(dāng)前時(shí)間作為cookie的值發(fā)送給客戶端Cookiecookie=newCookie("lastAccess",newDate().toLocaleString());cookie.setMaxAge(60*60);〃 保存1小時(shí)//訪問chapter06下資源時(shí)回送cookiecookie.setPath("/chapter06");//發(fā)送cookieresponse.addCookie(cookie);}}第2題答案步驟如下:創(chuàng)建一個(gè)PurchaseServlet類,使其繼承HttpServlet類并重寫該類的doGet()方法在doGet()方法中,使用request.getSession() 實(shí)現(xiàn)購物車。將session的id保存到cookie中。重定向到購物車頁面。具體代碼實(shí)現(xiàn)如下:publicclassPurchaseServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//獲得用戶購買的商品Stringid=req.getParameter("id");if(id==null){//如果id為null,重定向到ListBookServlet頁面Stringurl="/chapterO6/ListBookServlet";resp.sendRedirect(url);return;}Bookbook=BookDB.getBook(id);//創(chuàng)建或者獲得用戶的 Session對(duì)象HttpSessionsession=req.getSession();//從Session對(duì)象中獲得用戶的購物車List<Book>cart=(List)session.getAttribute("cart");if(cart==null){//首次購買,為用戶創(chuàng)建一個(gè)購物車 (List集合模擬購物車)cart=newArrayList<Book>();//將購物城存入Session對(duì)象session.setAttribute("cart",cart);}//將商品放入購物車cart.add(book);//創(chuàng)建Cookie存放Session的標(biāo)識(shí)號(hào)Cookiecookie=newCookie("JSESSIONID",session.getId());cookie.setMaxAge(60*30);cookie.setPath("/chapter06");resp.addCookie(cookie);//重定向到購物車頁面Stringurl="/chapterO6/CartServlet";resp.sendRedirect(url);}}第七章【測(cè)一測(cè)】1、 請(qǐng)使用include標(biāo)簽編寫兩個(gè)JSP頁面,要求:輸出b.jsp頁面的內(nèi)容,等待5秒,再輸出a.jsp頁面。2、 已知一個(gè)datetime.jsp頁面用于顯示當(dāng)前時(shí)間。請(qǐng)編寫jsp文件用于顯示“歡迎來到傳智播客,現(xiàn)在的時(shí)間是:” +當(dāng)前時(shí)間第1題答案jsp代碼:v%@pagecontentType="text/html;charset=UTF-8"%>v%Thread.sleep(5000);%>jsp內(nèi)的中文<br>jsp代碼:<%@pagecontentType="text/html;charset=UTF-8"%>jsp內(nèi)的中文<br>vjsp:includepage="a.jsp"flush="true"/>第2題答案<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>歡迎你</title>v/head><body>歡迎來到傳智播客,現(xiàn)在的時(shí)間是:<%@includefile="datetime.jsp"%>v/body>v/html>第八章【測(cè)一測(cè)】1、請(qǐng)編寫一個(gè)類,實(shí)現(xiàn)通過對(duì)象得到完整的“包 .類”名稱的功能。2、設(shè)計(jì)一個(gè)程序使用BeanUtils工具為Person對(duì)象(JavaBean類)賦值直接生成User對(duì)象。使用BeanUtils工具為name屬性賦值”youjun”,age賦值為31。使用BeanUtils工具取出屬性值,并在控制臺(tái)輸出。第1題答案packagecn.itcast.javabea

溫馨提示

  • 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)論