![《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/bfc96fbcf03baabf0a48ec2b715412b0/bfc96fbcf03baabf0a48ec2b715412b01.gif)
![《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/bfc96fbcf03baabf0a48ec2b715412b0/bfc96fbcf03baabf0a48ec2b715412b02.gif)
![《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/bfc96fbcf03baabf0a48ec2b715412b0/bfc96fbcf03baabf0a48ec2b715412b03.gif)
![《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/bfc96fbcf03baabf0a48ec2b715412b0/bfc96fbcf03baabf0a48ec2b715412b04.gif)
![《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/bfc96fbcf03baabf0a48ec2b715412b0/bfc96fbcf03baabf0a48ec2b715412b05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《Java軟件項(xiàng)目(BS架構(gòu))開發(fā)》4Servlet與歡迎頁面的實(shí)現(xiàn)第一頁,共29頁。學(xué)習(xí)目標(biāo)掌握定義Servlet的2種方法
如何將Servlet部署到Tomcat上
Servlet如何與客戶端交互,即Servlet如何獲得客戶端傳遞過來的參數(shù)和如何向?yàn)g覽器傳遞信息
如何在Servlet中引用(或加載)別的Servlet或JSP以及如何傳遞參數(shù)
如何在Servlet中調(diào)用別的Servlet或JSP以及如何傳遞參數(shù)
如何在Servlet中使用Cookie將信息保存在用戶的機(jī)器中
如何利用Servlet的生命周期特點(diǎn)使訪問頁面的計(jì)數(shù)器值連續(xù)
完成歡迎頁面
《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二頁,共29頁。歡迎頁面要求《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第三頁,共29頁?!皻g迎光臨聯(lián)合銀行”滾動(dòng)顯示實(shí)現(xiàn)一個(gè)顯示頁面被訪問次數(shù)的計(jì)數(shù)器HTML已經(jīng)無法實(shí)現(xiàn),需要使用動(dòng)態(tài)網(wǎng)頁技術(shù),如Servlet《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第四頁,共29頁。Servlet概述
運(yùn)行在服務(wù)器端的Web容器中的Java應(yīng)用程序
它響應(yīng)客戶端的請(qǐng)求,并把處理結(jié)果以HTML網(wǎng)頁的形式返回給客戶
Servlet可擴(kuò)展服務(wù)器的功能,如訪問數(shù)據(jù)庫《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第五頁,共29頁。Servlet的生命周期初始化階段處理客戶端請(qǐng)求階段
銷毀階段
《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第六頁,共29頁。使用Servlet的優(yōu)點(diǎn)Servlet只在第1次被請(qǐng)求執(zhí)行時(shí)才需要加載不需要?jiǎng)?chuàng)建不同的進(jìn)程來處理不同的
客戶請(qǐng)求由于Servlet就是Java程序,因此可以使用Java類庫編寫具有各種功能的Servlet平臺(tái)無關(guān)《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第七頁,共29頁。下載并安裝Tomcat首先要從SUN公司下載并安裝JDK設(shè)置環(huán)境變量JAVA_HOME=JDK的安裝目錄去Tomcat的官方網(wǎng)站或其他提供Tomcat下載的網(wǎng)址下載,可能是一個(gè)安裝包或壓縮包安裝或解壓即可《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第八頁,共29頁。ServletAPI在標(biāo)準(zhǔn)版的JDK中不包含ServletAPI可以使用J2SDKEE中的j2ee.jar或Tomcat的common\lib\servlet-api.jar都包含ServletAPI的包javax.servlet和javax.servlet.http《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第九頁,共29頁。使用ServletAPI編寫Servlet編寫Servlet小應(yīng)用程序要用到ServletAPI,ServletAPI由2個(gè)Java包javax.servlet和javax.servlet.http組成。編寫Servlet有2種方法:通過繼承javax.servlet.GenericServlet類
通過繼承javax.servlet.http.HttpServlet類
《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十頁,共29頁。繼承GenericServlet定義一個(gè)新的Servlet類
重寫service()方法定義Servlet的功能案例4-1:顯示“你好”。在Service方法中通過調(diào)用參數(shù)response的方法setContentType設(shè)置返回的頁面的內(nèi)容類型和字符編碼,處理中文顯示亂碼調(diào)用response的方法getWriter獲得發(fā)送數(shù)據(jù)的輸出流對(duì)象,然后用該對(duì)象的println方法向?yàn)g覽器發(fā)送信息《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十一頁,共29頁。packagech4.servlet;importjavax.servlet.*;//importjavax.servlet.http.*;importjava.io.*;publicclassHelloWorldServletextendsGenericServlet{
publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsIOException
{ response.setContentType("text/html;charset=GB2312"); PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<head><title>helloWorldServlet</title></head>"); out.println("<body>"); out.println("你好!"); out.println("</body>"); out.println("</html>"); }}《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十二頁,共29頁。將Servlet部署到Tomcat上對(duì)于Tomcat,需要手工部署:編譯生成Servlet的字節(jié)碼文件將字節(jié)碼文件復(fù)制到TOMCAT_HOME\webapps下的對(duì)應(yīng)某個(gè)應(yīng)用程序的目錄(如test2)的子目錄WEB-INF\classes目錄或其子目錄(如TOMCAT_HOME\webapps\test2\WEB-INF\
classes\ch4\servlet)中修改WEB-INF下的web.xml文件,見教材86頁,注意<servlet-class>ch4.servlet.HelloWorldServlet</servlet-class>《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十三頁,共29頁。<servlet>與</servlet>部分定義一個(gè)新的Servlet,其中<servlet-name>段指定這個(gè)servlet的名字,注意<servlet-class>段指定這個(gè)servlet對(duì)應(yīng)的類,由于這個(gè)類屬于包c(diǎn)h4.servlet,所以要給出包名<servlet-mapping>與</servlet-mapping>部分定義servlet在URL中出現(xiàn)的名字《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十四頁,共29頁。調(diào)用Servlet的2種方式在瀏覽器的地址欄中輸入Servlet的URL在表單(Form)的屬性Action中指定Servlet的URL<FORMaction=>….《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十五頁,共29頁。問題用戶在頁面上輸入姓名,如王紅,服務(wù)器端的Servlet會(huì)針對(duì)這個(gè)姓名返回一個(gè)歡迎信息,如“歡迎你,王紅!”用戶的輸入是不確定的,不能用靜態(tài)頁面完成。需要服務(wù)器端的程序,如某Servlet。程序設(shè)計(jì)需要?jiǎng)澐止δ埽耗牟糠钟渺o態(tài)網(wǎng)頁,哪部分用Servlet,它們之間如何通信(即建立關(guān)聯(lián)或聯(lián)系?如何指定服務(wù)器端的程序?服務(wù)器端程序,如某Servlet,如何獲得用戶的輸入?如何向客戶端瀏覽器返回信息?《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十六頁,共29頁。通過繼承HttpServlet定義一個(gè)新的Servlet類
重寫doGet()或者doPost()方法定義Servlet的功能案例4-2:用戶在頁面上輸入姓名,服務(wù)器端的Servlet會(huì)針對(duì)這個(gè)姓名返回一個(gè)歡迎信息。請(qǐng)求采用GET方式發(fā)送到服務(wù)器端重寫doGet()方法定義Servlet的功能通過doGet()的參數(shù)request可以獲得來自瀏覽器的相關(guān)請(qǐng)求信息,如用戶在表單中的輸入,設(shè)置頁面請(qǐng)求的字符編碼以保證正確解碼通過參數(shù)response設(shè)置送回到瀏覽器的相關(guān)信息,如設(shè)置返回頁面類型和字符編碼并獲得發(fā)送數(shù)據(jù)的輸出流對(duì)象《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十七頁,共29頁。案例4-3:功能同4-2,只是請(qǐng)求采用POST方式發(fā)送到服務(wù)器端,Servlet重寫doPost()方法定義Servlet的功能《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十八頁,共29頁。練習(xí)實(shí)現(xiàn)一個(gè)名為emailServlet的Servlet,可以接受用戶輸入的email地址并顯示:你輸入的郵箱地址是:XXXXXXXXXX用HTML實(shí)現(xiàn)一個(gè)email地址錄入界面,當(dāng)用戶提交后將調(diào)用emailServlet顯示用戶輸入的信息?!禞ava軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第十九頁,共29頁。顯示用戶前一次用同一臺(tái)機(jī)器登錄服務(wù)器的時(shí)間使用cookie技術(shù),將登錄服務(wù)器的時(shí)間保存到用戶的硬盤上,用戶下一次調(diào)用時(shí)就從用戶的硬盤上讀出來并顯示《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十頁,共29頁。在Servlet中使用cookieServletAPI中的Cookie類提供了很多方法處理cookieHttpServletRequest的getCookies()方法可以獲得存儲(chǔ)在客戶計(jì)算機(jī)上的cookieHttpServletResponse的addCookie方法,可以將cookie的數(shù)據(jù)和HTTP響應(yīng)一起發(fā)送給客戶HttpServlet的service、doGet和doPost方法的2個(gè)參數(shù)的類型分別是HttpServletRequest和HttpServletResponse《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十一頁,共29頁。讀出已經(jīng)存在的cookieCookie[]cookies=request.getCookies();for(inti=0;i<cookies.length;i++){Cookiec=cookies[i];Stringname=c.getName();Stringvalue=c.getValue();out.println(name+"="+value);}《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十二頁,共29頁。生成并設(shè)置一個(gè)cookieCookiec=newCookie(name,value);c.setMaxAge(LastSecond);response.addCookie(c);《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十三頁,共29頁。案例4-4定義一個(gè)Servlet顯示用戶前一次用同一臺(tái)機(jī)器登錄服務(wù)器的時(shí)間《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十四頁,共29頁。顯示生命周期的Servlet在Servlet的生命周期中,有幾個(gè)重要的方法:init()方法只在第1次請(qǐng)求時(shí)調(diào)用每次請(qǐng)求都會(huì)調(diào)用service()方法,service()方法根據(jù)請(qǐng)求是GET還是POST調(diào)用doGet()或doPost()方法destroy()方法只在servlet被銷毀時(shí)才調(diào)用
案例4-5:重寫init()方法,將計(jì)數(shù)器的值清0重寫doGet()方法,將計(jì)數(shù)器的值加1通過計(jì)數(shù)器的值的變化來說明Servlet的方法的調(diào)用情況《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十五頁,共29頁。案例4-6:計(jì)數(shù)連續(xù)的Servlet重寫init()方法,從文件中讀出計(jì)數(shù)值重寫doGet()方法,將計(jì)數(shù)器的值加1重寫destroy()方法,將計(jì)數(shù)值保存到文件中可以將計(jì)數(shù)值保存到數(shù)據(jù)庫中《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十六頁,共29頁。從Servlet中引用其他文件用被引用文件的URL作為參數(shù)調(diào)用request的getRequestDispatcher()方法來獲得request調(diào)度程序?qū)ο?/p>
調(diào)度程序?qū)ο蟮膇nclude()方法將資源引入并且傳遞參數(shù)案例4-7:讓用戶在輸入界面上選中一個(gè)客戶端技術(shù),然后提交給服務(wù)器端的Servlet處理,Servlet會(huì)引用一個(gè)JSP文件顯示部分信息
RequestDispatcherdispatcher=request.getRequestDispatcher("include.jsp");dispatcher.include(request,response);《Java軟件項(xiàng)目(B/S架構(gòu))開發(fā)》覃國蓉第二十七頁,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆高考英語讀后續(xù)寫說課稿 追車人
- 2025SRV汽化煙道熱噴涂合金防護(hù)層施工合同
- 2025民間融資合同范本
- 14《母雞》(說課稿)-2023-2024學(xué)年語文四年級(jí)下冊(cè)統(tǒng)編版
- 2025年駕校培訓(xùn)合同范本
- 2025商品購銷合同(超市類)
- 2024年五年級(jí)數(shù)學(xué)下冊(cè) 一 圖形的運(yùn)動(dòng)(二)1.2畫對(duì)稱圖形說課稿 冀教版
- 2024-2025學(xué)年高中歷史 第一單元 第一次世界大戰(zhàn) 第2課 慘烈的四年戰(zhàn)事教學(xué)說課稿 岳麓版選修3
- 陶土板幕墻施工方案
- 游樂場植物墻施工方案
- 2024版《安全生產(chǎn)法》考試題庫附答案(共90題)
- 疥瘡病人的護(hù)理
- 2024年江西省中考英語試題含解析
- 公務(wù)員2012年國考《申論》真題卷及答案(地市級(jí))
- 新員工三級(jí)安全教育考試試題參考答案
- 35kV輸變電工程(變電站、輸配電線路建設(shè))技術(shù)方案
- 數(shù)學(xué)史簡介課件可編輯全文
- 化學(xué)廢水水池清理施工方案
- 離婚協(xié)議書常用范本2024年
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 2024年山東省東營市中考數(shù)學(xué)試題 (解析版)
評(píng)論
0/150
提交評(píng)論