實(shí)驗(yàn)1servlet實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)1servlet實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)1servlet實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)1servlet實(shí)驗(yàn)_第4頁(yè)
實(shí)驗(yàn)1servlet實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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)介

1、畢業(yè)論文沈陽(yáng)理工大學(xué)應(yīng)用技術(shù)學(xué)院javaweb程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)題目: servlet編程設(shè)計(jì) 院 系: 信息與控制學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí)學(xué)號(hào): 11301234 學(xué)生姓名: 張森 指導(dǎo)教師: 靳新 成 績(jī): 2013 年 4 月 20 日沈陽(yáng)理工大學(xué)應(yīng)用技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一 servlet編程設(shè)計(jì)【開(kāi)發(fā)語(yǔ)言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境】windows系統(tǒng),jdk,myeclipse開(kāi)發(fā)環(huán)境,tomcat服務(wù)器 【實(shí)驗(yàn)?zāi)康摹?、熟悉servlet的基本概念2、掌握servlet的工作原理3、掌握servlet的生命周期4、掌握servlet處理表單數(shù)據(jù)的編程方式5、掌握servlet會(huì)

2、話管理的編程設(shè)計(jì)【實(shí)驗(yàn)內(nèi)容】1、編寫(xiě)一個(gè)servlet處理表單的程序,基本要求:(1)客戶(hù)端以html表單方式向服務(wù)器提交數(shù)據(jù)的方法;(2)提交方法采用post方法;(3)表單中涉及到各種常用控件;(4)使用相應(yīng)方法獲取表單數(shù)據(jù)2、程序?qū)崿F(xiàn)功能如圖所示:注意:項(xiàng)目名為loginservletproject,表單文件名為login.html,獲取表單的servlet名為loginservlet。 login.html loginservlet.java3、程序功能提升要求:(1)在表單的“建議”中使用fckeditor實(shí)現(xiàn)編輯器功能;(2)如果輸入無(wú)效參數(shù),使用jsvalidation驗(yàn)證框架對(duì)

3、表單中每個(gè)選項(xiàng)的內(nèi)容進(jìn)行有效性驗(yàn)證。如圖: 【代碼實(shí)現(xiàn)】1、login.htmllogin.html!- window.onload = function() var ofckeditor = new fckeditor(advise);ofckeditor.basepath = /loginservletproject/fckeditor/;ofckeditor.replacetextarea(); -潛在用戶(hù)調(diào)查姓名: email: 年紀(jì):小于1818-2526-40大于40編程時(shí)間:1年內(nèi)1-2年3年以上所使用的操作系統(tǒng):win xpwin 2000/2003linu

4、xfreebsdmac osother使用的編程語(yǔ)言:cc+c#pythonjavavbdephi建議: var ofckeditor = new fckeditor(advise); ofckeditor.basepath = /loginservletproject/fckeditor/; ofckeditor.height = 200; ofckeditor.width = 700; ofckeditor.toolbarset = default; ofckeditor.create(); 2、loginservlet.java import java.io.ioexception;im

5、port java.io.printwriter;import javax.servlet.servletexception;import javax.servlet.http.httpservlet;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;public class loginservlet extends httpservlet public loginservlet() super();public void destroy() super.dest

6、roy(); public void doget(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception dopost(request, response);public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception response.setcontenttype(text/html;charset=

7、utf-8);printwriter out = response.getwriter();request.setcharacterencoding(utf-8);string username = request.getparameter(username);string email = request.getparameter(email);string age = request.getparameter(age);string time = request.getparameter(time);string os = request.getparametervalues(os);str

8、ing language = request.getparametervalues(language);string advise = request.getparameter(advise);out.print(姓名:+username);out.print();out.print(email: +email);out.print();out.print(年齡:+age);out.print();out.print(編程時(shí)間:+time);out.print();out.print(使用的操作系統(tǒng):);for(int i = 0;ios.length;i+)out.print(os

9、i+   );out.print();out.print(使用的編程語(yǔ)言:);for(int s = 0;slanguage.length;s+)out.print(languages+   );out.print();out.println(建議:+advise);out.flush();out.close();public void init() throws servletexception 【思考題】1、如何修改tomcat端口號(hào)?在tomcat文件conf文件夾下的server.xml文件,更改port端口號(hào),默認(rèn)為8080

10、端口。 2、說(shuō)明在tomcat中,tomcat-user.xml文件的作用。 用于配置tomcat使用的用戶(hù)名,密碼等信息3、如何在web.xml中配置一個(gè)編寫(xiě)好的servlet?需要指定: 配對(duì)名 servlet類(lèi)名 配對(duì)名 /請(qǐng)求的url 4、說(shuō)明servlet類(lèi)的結(jié)構(gòu)。get請(qǐng)求就是用戶(hù)在瀏覽器的地址欄里輸入一個(gè)地址、在網(wǎng)頁(yè)上點(diǎn)擊連接或產(chǎn)生一個(gè)沒(méi)有定義方法的html表單后產(chǎn)生的請(qǐng)求。servlets還能輕松處理表單的提交(post),關(guān)于處理表單提交我們將在后面幾部分談到。 import java.io.*; import javax.servlet.*; import javax.se

11、rvlet.http.*; public class someservlet extends httpservlet public void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception / 用 request 讀取http信息頭(如cookie) / 和html表單數(shù)據(jù) (如用戶(hù)輸入和提交的數(shù)據(jù)) / 用response指定http響應(yīng) 和http信息頭 / (如指明信息的類(lèi)型、設(shè)定cookie). printwriter out = r

12、esponse.getwriter(); / 用 out輸出內(nèi)容到瀏覽器 不管是用doget還是dopost方法,servlet都要用到httpservlet擴(kuò)展類(lèi)。這些方法可分為兩類(lèi):httpservletrequest和httpservletresponse。httpservletrequest含有獲得表單數(shù)據(jù)、http信息頭等信息的方法。 httpservletresponse則包含指明http響應(yīng) (200, 404,等。)、信息頭(content-type, set-cookie, 等。)的方法,更重要的是你能使用printwriter方法向客戶(hù)端輸出信息。注意doget和dopos

13、t方法會(huì)拋出兩個(gè)異常,所以必須在定義里包含他們。要用到printwriter、httpservlet和httpservletrequest, httpservletresponse方法還必須分別引入java.io、javax.servlet和javax.servlet.http。 一般來(lái)說(shuō),doget和dopost是被service方法調(diào)用的,但有時(shí)候你可能想越過(guò)service方法而直接使用自己定義的service方法,比如定義一個(gè)既能處理get也能處理post請(qǐng)求的servlet。 5、說(shuō)明servlet的生命周期。servlet的生命周期是由servlet的容器來(lái)控制的。分為3個(gè)階段:初始

14、化階段(init)、運(yùn)行階段(run)、銷(xiāo)毀階段(destroy)。一、 init初始化階段步驟:1) servlet容器加載servlet類(lèi),把它的. class文件中的數(shù)據(jù)讀到內(nèi)存中。2) servlet容器創(chuàng)建servletconfig對(duì)象。servletconfig對(duì)象包含了servlet的初始化配置信息。此外servlet容器還會(huì)使得servletconfig對(duì)象與當(dāng)前的web應(yīng)用的servletcontext對(duì)象關(guān)聯(lián)。3) servlet容器創(chuàng)建servlet對(duì)象。4) servlet容器調(diào)用servlet對(duì)象的init(servletconfig config)方法。通過(guò)初始化步

15、驟,創(chuàng)建了servlet對(duì)象和servletconfig對(duì)象,并且servlet對(duì)象與servletconfig對(duì)象關(guān)聯(lián),而servletconfig對(duì)象又與當(dāng)前對(duì)象的servletcontext對(duì)象關(guān)聯(lián)。當(dāng)servlet容器完成servlet后,servlet對(duì)象只要通過(guò)getservletcontext()方法就能得到web應(yīng)用的servletcontext對(duì)象。初始化的情況:1) 當(dāng)web應(yīng)用處于運(yùn)行階段時(shí),特定的servlet被客戶(hù)端首次請(qǐng)求訪問(wèn)。2) 在web.xml文件中為servlet設(shè)置了元素servlet1servlet.servlet103) 當(dāng)web應(yīng)用被重新啟動(dòng)時(shí),we

16、b應(yīng)用中的所有servlet會(huì)在特定的時(shí)間被重新初始化。二、 run1) 在這個(gè)階段sevlet可以隨時(shí)響應(yīng)客戶(hù)端的請(qǐng)求。當(dāng)servlet容器接到訪問(wèn)特定的servlet請(qǐng)求時(shí),servlet容器會(huì)創(chuàng)建針對(duì)與這個(gè)請(qǐng)求的servletrequest和servletresponse對(duì)象,然后調(diào)用service()方法,并把這兩個(gè)對(duì)象當(dāng)做參數(shù)傳遞給service()方法。service()方法通過(guò)servletrequest對(duì)象獲得請(qǐng)求信息,并處理該請(qǐng)求,再通過(guò)servletresponse對(duì)象生成響應(yīng)結(jié)果。2) 【不管是post還是get方法提交,都會(huì)在service中處理,然后,由service

17、來(lái)交由相應(yīng)的dopost或doget方法處理,如果你重寫(xiě)了service方法,就不會(huì)再處理dopost或doget了,如果重寫(xiě)sevice()方法,可以自己轉(zhuǎn)向dopost()或doget()方法】 注:當(dāng)servlet容器把servlet生成的響應(yīng)結(jié)果發(fā)送給客戶(hù)后,servlet容器會(huì)銷(xiāo)毀servletrequest和sevletresponse對(duì)象。三、 destory 當(dāng)web應(yīng)用被終止時(shí),servlet容器會(huì)先調(diào)用web應(yīng)用中所有的servlet對(duì)象的destroy()方法,然后在銷(xiāo)毀servlet對(duì)象。此外容器還會(huì)銷(xiāo)毀與servlet對(duì)象關(guān)聯(lián)的servletconfig對(duì)象。 在de

18、stroy()方法的實(shí)現(xiàn)中,可以釋放servlet所占用的資源。如關(guān)閉文件輸入輸出流,關(guān)閉與數(shù)據(jù)庫(kù)的連接。6、說(shuō)明在servlet中如何處理接受參數(shù)的亂碼問(wèn)題。servlet中時(shí)常要接收jsp頁(yè)面?zhèn)鬟^(guò)來(lái)的參數(shù),它也要進(jìn)行一次編碼轉(zhuǎn)換,轉(zhuǎn)換方式是,在接收參數(shù)的方法內(nèi),接收參數(shù)之前加上:request.setcharacterencoding(gb2312);這句話,是專(zhuān)門(mén)處理頁(yè)面?zhèn)鬟^(guò)來(lái)的亂碼處理問(wèn)題,保證在這里接收時(shí),能接收到正確的中文。而還有一名話,也是要加的:response.setcontenttype(text/html; charset=gb2312);這句話,就是專(zhuān)門(mén)處理在servl

19、et里,當(dāng)參數(shù)經(jīng)過(guò)處理后,要傳到客戶(hù)端顯示時(shí),要保證傳送的是正確的中文。這兩句話,都得寫(xiě)在servlet里。7、如何在servlet中使用cookie對(duì)象用到的類(lèi) javax.servlet.http.cookie構(gòu)造cookie 的方法 : new cookie(鍵,值)構(gòu)造函數(shù)如下:cookie(java.lang.string name, java.lang.string value)把cookie發(fā)送給客戶(hù)端httpservletresponse.addcookie(javax.servlet.http.cookie)取得客戶(hù)瀏覽器的cookie,返回的是數(shù)組httpservletrequest.getcookies()getcomment/setcomment 獲取/設(shè)置cookie的注釋。getdomain/setdomain獲取/設(shè)置cookie適用的域。一般地,cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。使用這里的方法可以指示瀏覽器把cookie返回給同一域內(nèi)的其他服務(wù)器。注意域必須以點(diǎn)開(kāi)始(例如),非國(guó)家類(lèi)的域(如.com,.edu,.gov)必須包含兩個(gè)點(diǎn),國(guó)家類(lèi)的域(如,.edu.uk)必須包含三個(gè)點(diǎn)。getmaxage/setmaxage獲取/設(shè)置cookie過(guò)期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則

溫馨提示

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