




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)論文沈陽理工大學(xué)應(yīng)用技術(shù)學(xué)院javaweb程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)題目: servlet編程設(shè)計(jì) 院 系: 信息與控制學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí)學(xué)號(hào): 11301234 學(xué)生姓名: 張森 指導(dǎo)教師: 靳新 成 績(jī): 2013 年 4 月 20 日沈陽理工大學(xué)應(yīng)用技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一 servlet編程設(shè)計(jì)【開發(fā)語言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境】windows系統(tǒng),jdk,myeclipse開發(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、編寫一個(gè)servlet處理表單的程序,基本要求:(1)客戶端以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)如果輸入無效參數(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(); -潛在用戶調(diào)查姓名: email: 年紀(jì):小于1818-2526-40大于40編程時(shí)間:1年內(nèi)1-2年3年以上所使用的操作系統(tǒng):win xpwin 2000/2003linu
4、xfreebsdmac osother使用的編程語言: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(使用的編程語言:);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、說明在tomcat中,tomcat-user.xml文件的作用。 用于配置tomcat使用的用戶名,密碼等信息3、如何在web.xml中配置一個(gè)編寫好的servlet?需要指定: 配對(duì)名 servlet類名 配對(duì)名 /請(qǐng)求的url 4、說明servlet類的結(jié)構(gòu)。get請(qǐng)求就是用戶在瀏覽器的地址欄里輸入一個(gè)地址、在網(wǎng)頁上點(diǎn)擊連接或產(chǎn)生一個(gè)沒有定義方法的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ù) (如用戶輸入和提交的數(shù)據(jù)) / 用response指定http響應(yīng) 和http信息頭 / (如指明信息的類型、設(shè)定cookie). printwriter out = r
12、esponse.getwriter(); / 用 out輸出內(nèi)容到瀏覽器 不管是用doget還是dopost方法,servlet都要用到httpservlet擴(kuò)展類。這些方法可分為兩類:httpservletrequest和httpservletresponse。httpservletrequest含有獲得表單數(shù)據(jù)、http信息頭等信息的方法。 httpservletresponse則包含指明http響應(yīng) (200, 404,等。)、信息頭(content-type, set-cookie, 等。)的方法,更重要的是你能使用printwriter方法向客戶端輸出信息。注意doget和dopos
13、t方法會(huì)拋出兩個(gè)異常,所以必須在定義里包含他們。要用到printwriter、httpservlet和httpservletrequest, httpservletresponse方法還必須分別引入java.io、javax.servlet和javax.servlet.http。 一般來說,doget和dopost是被service方法調(diào)用的,但有時(shí)候你可能想越過service方法而直接使用自己定義的service方法,比如定義一個(gè)既能處理get也能處理post請(qǐng)求的servlet。 5、說明servlet的生命周期。servlet的生命周期是由servlet的容器來控制的。分為3個(gè)階段:初始
14、化階段(init)、運(yùn)行階段(run)、銷毀階段(destroy)。一、 init初始化階段步驟:1) servlet容器加載servlet類,把它的. 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)方法。通過初始化步
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ì)象只要通過getservletcontext()方法就能得到web應(yīng)用的servletcontext對(duì)象。初始化的情況:1) 當(dāng)web應(yīng)用處于運(yùn)行階段時(shí),特定的servlet被客戶端首次請(qǐng)求訪問。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)客戶端的請(qǐng)求。當(dāng)servlet容器接到訪問特定的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()方法通過servletrequest對(duì)象獲得請(qǐng)求信息,并處理該請(qǐng)求,再通過servletresponse對(duì)象生成響應(yīng)結(jié)果。2) 【不管是post還是get方法提交,都會(huì)在service中處理,然后,由service
17、來交由相應(yīng)的dopost或doget方法處理,如果你重寫了service方法,就不會(huì)再處理dopost或doget了,如果重寫sevice()方法,可以自己轉(zhuǎn)向dopost()或doget()方法】 注:當(dāng)servlet容器把servlet生成的響應(yīng)結(jié)果發(fā)送給客戶后,servlet容器會(huì)銷毀servletrequest和sevletresponse對(duì)象。三、 destory 當(dāng)web應(yīng)用被終止時(shí),servlet容器會(huì)先調(diào)用web應(yīng)用中所有的servlet對(duì)象的destroy()方法,然后在銷毀servlet對(duì)象。此外容器還會(huì)銷毀與servlet對(duì)象關(guān)聯(lián)的servletconfig對(duì)象。 在de
18、stroy()方法的實(shí)現(xiàn)中,可以釋放servlet所占用的資源。如關(guān)閉文件輸入輸出流,關(guān)閉與數(shù)據(jù)庫(kù)的連接。6、說明在servlet中如何處理接受參數(shù)的亂碼問題。servlet中時(shí)常要接收jsp頁面?zhèn)鬟^來的參數(shù),它也要進(jìn)行一次編碼轉(zhuǎn)換,轉(zhuǎn)換方式是,在接收參數(shù)的方法內(nèi),接收參數(shù)之前加上:request.setcharacterencoding(gb2312);這句話,是專門處理頁面?zhèn)鬟^來的亂碼處理問題,保證在這里接收時(shí),能接收到正確的中文。而還有一名話,也是要加的:response.setcontenttype(text/html; charset=gb2312);這句話,就是專門處理在servl
19、et里,當(dāng)參數(shù)經(jīng)過處理后,要傳到客戶端顯示時(shí),要保證傳送的是正確的中文。這兩句話,都得寫在servlet里。7、如何在servlet中使用cookie對(duì)象用到的類 javax.servlet.http.cookie構(gòu)造cookie 的方法 : new cookie(鍵,值)構(gòu)造函數(shù)如下:cookie(java.lang.string name, java.lang.string value)把cookie發(fā)送給客戶端httpservletresponse.addcookie(javax.servlet.http.cookie)取得客戶瀏覽器的cookie,返回的是數(shù)組httpservletrequest.getcookies()getcomment/setcomment 獲取/設(shè)置cookie的注釋。getdomain/setdomain獲取/設(shè)置cookie適用的域。一般地,cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。使用這里的方法可以指示瀏覽器把cookie返回給同一域內(nèi)的其他服務(wù)器。注意域必須以點(diǎn)開始(例如),非國(guó)家類的域(如.com,.edu,.gov)必須包含兩個(gè)點(diǎn),國(guó)家類的域(如,.edu.uk)必須包含三個(gè)點(diǎn)。getmaxage/setmaxage獲取/設(shè)置cookie過期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化妝學(xué)校合同范本
- 包車居間服務(wù)合同范本
- 鄉(xiāng)村園林出售合同范本
- 別墅大門購(gòu)買合同范本
- 醫(yī)療旅行合同范本
- 倉(cāng)庫(kù)分租協(xié)議合同范例
- 分包非標(biāo)工程合同范本
- 勞動(dòng)配送合同范本
- 上牌購(gòu)車合同范本
- 公寓欄桿維修合同范本
- 2024 河北公務(wù)員考試(筆試、省直、A類、C類)4套真題及答案
- 廈門2025年福建廈門市公安文職人員服務(wù)中心招聘17人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年高三歷史教學(xué)工作計(jì)劃
- 《職業(yè)性肌肉骨骼疾患的工效學(xué)預(yù)防指南 》
- 不同產(chǎn)地筠連紅茶風(fēng)味化學(xué)成分差異分析
- DB50 577-2015 汽車整車制造表面涂裝大氣污染物排放標(biāo)準(zhǔn)
- 生態(tài)安全課件
- 消防風(fēng)道風(fēng)管施工方案
- 大學(xué)英語(西安歐亞學(xué)院)知到智慧樹章節(jié)測(cè)試課后答案2024年秋西安歐亞學(xué)院
- 人教版高中英語挖掘文本深度學(xué)習(xí)-選修四-UNIT-2-(答案版)
- 八下冀教版英語單詞表
評(píng)論
0/150
提交評(píng)論