![JavaWeb程序設(shè)計(jì) 課件 ch13 驗(yàn)證碼和文件上傳下載_第1頁(yè)](http://file4.renrendoc.com/view5/M00/34/09/wKhkGGYbkW2ActbrAAEq12dRayc068.jpg)
![JavaWeb程序設(shè)計(jì) 課件 ch13 驗(yàn)證碼和文件上傳下載_第2頁(yè)](http://file4.renrendoc.com/view5/M00/34/09/wKhkGGYbkW2ActbrAAEq12dRayc0682.jpg)
![JavaWeb程序設(shè)計(jì) 課件 ch13 驗(yàn)證碼和文件上傳下載_第3頁(yè)](http://file4.renrendoc.com/view5/M00/34/09/wKhkGGYbkW2ActbrAAEq12dRayc0683.jpg)
![JavaWeb程序設(shè)計(jì) 課件 ch13 驗(yàn)證碼和文件上傳下載_第4頁(yè)](http://file4.renrendoc.com/view5/M00/34/09/wKhkGGYbkW2ActbrAAEq12dRayc0684.jpg)
![JavaWeb程序設(shè)計(jì) 課件 ch13 驗(yàn)證碼和文件上傳下載_第5頁(yè)](http://file4.renrendoc.com/view5/M00/34/09/wKhkGGYbkW2ActbrAAEq12dRayc0685.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第13章驗(yàn)證碼和文件上傳下載本課教學(xué)內(nèi)容使用JSP驗(yàn)證碼驗(yàn)證碼開(kāi)發(fā)認(rèn)識(shí)文件上傳實(shí)現(xiàn)文件上傳文件下載使用JSP驗(yàn)證碼驗(yàn)證碼有什么作用呢?假想系統(tǒng)沒(méi)有驗(yàn)證碼,直接通過(guò)用戶名和密碼登錄,那么就有能有惡意的用戶不停輸入用戶名和密碼進(jìn)行登錄試探,或者他使用一個(gè)輸入程序(俗稱機(jī)器人程序)不停登錄,有理由相信總有一天他是能夠破解密碼的,就可以使用別人的賬號(hào)了?;蛘呒词顾麤](méi)有破解,只是不停的在登錄,服務(wù)器每次都會(huì)驗(yàn)證數(shù)據(jù)庫(kù),也會(huì)嚴(yán)重的降低服務(wù)器的效率,導(dǎo)致其他人不能使用。但是有了驗(yàn)證碼之后,就可以避免這種現(xiàn)象使用JSP驗(yàn)證碼每登錄一次服務(wù)器,客戶都需要提供一次驗(yàn)證碼,而驗(yàn)證碼每次都是不同的。所以很難使用機(jī)器人程序反復(fù)登錄,因?yàn)闄C(jī)器人程序無(wú)法認(rèn)識(shí)驗(yàn)證碼。這就是驗(yàn)證碼強(qiáng)大的功能所在使用JSP驗(yàn)證碼所謂驗(yàn)證碼,就是由服務(wù)器產(chǎn)生的一串隨機(jī)數(shù)字或符號(hào),形成一幅圖片,圖片應(yīng)該傳給客戶端,為了防止客戶端用一些程序來(lái)進(jìn)行自動(dòng)識(shí)別,圖片中通常要加上一些干擾象素,由用戶肉眼識(shí)別其中的驗(yàn)證碼信息??蛻糨斎氡韱翁峤粫r(shí),驗(yàn)證碼也提交給網(wǎng)站服務(wù)器,只有驗(yàn)證成功,才能執(zhí)行實(shí)際的數(shù)據(jù)庫(kù)操作使用JSP驗(yàn)證碼驗(yàn)證碼必須滿足以下幾個(gè)性質(zhì):1.不同的請(qǐng)求,得到的驗(yàn)證碼應(yīng)該是隨機(jī)的,或者是無(wú)法預(yù)知的,必須由服務(wù)器端產(chǎn)生使用JSP驗(yàn)證碼驗(yàn)證碼必須滿足以下幾個(gè)性質(zhì):2.驗(yàn)證碼必須通過(guò)人眼識(shí)別,而通過(guò)圖像編程的方法編寫(xiě)的機(jī)器人程序在客戶端運(yùn)行,幾乎無(wú)法識(shí)別。這就是驗(yàn)證碼都比較歪斜或者模糊的原因,否則就很容易通過(guò)圖像處理算法來(lái)識(shí)別使用JSP驗(yàn)證碼驗(yàn)證碼必須滿足以下幾個(gè)性質(zhì):3.除了人眼觀察之外,客戶端無(wú)法通過(guò)其他手段獲取驗(yàn)證碼信息。這就是驗(yàn)證碼為什么用圖片,而不是直接用一個(gè)數(shù)字文本在頁(yè)面上顯示的原因,因?yàn)榭蛻舳丝赡芡ㄟ^(guò)訪問(wèn)網(wǎng)頁(yè)源代碼的方式獲取驗(yàn)證碼的內(nèi)容使用JSP驗(yàn)證碼驗(yàn)證碼的工作流程如下:1.服務(wù)器端隨機(jī)生成驗(yàn)證碼字符串,保存在session中,并寫(xiě)入圖片,將圖片連同表單發(fā)給客戶端。使用JSP驗(yàn)證碼驗(yàn)證碼的工作流程如下:2.客戶端輸入驗(yàn)證碼,并提交,服務(wù)器端獲取客戶提交的驗(yàn)證碼,和前面產(chǎn)生的隨機(jī)驗(yàn)證碼字符串相比較;如果相同,則繼續(xù)進(jìn)行表單所描述的操作(如登錄、注冊(cè)等);如果不同,直接將錯(cuò)誤信息返回給客戶端。避免程序的繼續(xù)運(yùn)行以及訪問(wèn)數(shù)據(jù)庫(kù)驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下:實(shí)例化java.awt.image.BufferedImage類(lèi)。它的作用是訪問(wèn)圖像數(shù)據(jù)緩沖區(qū),或者說(shuō)對(duì)所要繪的圖片對(duì)象進(jìn)行訪問(wèn)
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下:從BufferedImage中獲取Graphics類(lèi)對(duì)象(畫(huà)筆),并設(shè)定相關(guān)屬性。
Graphicsg=image.getGraphics(); Graphics提供了對(duì)幾何形狀、坐標(biāo)轉(zhuǎn)換、顏色管理和文本布局更為復(fù)雜的控制。 g.setColor(Colorcolor);//設(shè)置顏色g.fillRect(int,int,int,int);//設(shè)置生成的圖片為長(zhǎng)方形驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下:產(chǎn)生4位數(shù)隨機(jī)數(shù),并將其存入session中。 //產(chǎn)生隨機(jī)數(shù)
Randomrnd=newRandom(); intrandNum=rnd.nextInt(8999)+1000; StringrandStr=String.valueOf(randNum);session.setAttribute("randStr",randStr);驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下: 用畫(huà)筆畫(huà)出隨機(jī)數(shù)和干擾點(diǎn)。
g.setColor(Color.black); g.setFont(newFont("",Font.PLAIN,20)); g.drawString(randStr,10,17); //隨機(jī)產(chǎn)生100個(gè)干擾點(diǎn),使圖象中的驗(yàn)證碼不易被其他程序探測(cè)到for(inti=0;i<100;i++){ intx=rnd.nextInt(width);inty=rnd.nextInt(height);g.drawOval(x,y,1,1);}驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下:
輸出圖像 //輸出圖象到頁(yè)面
ImageIO.write(Imageimage,"JPEG",response.getOutputStream());驗(yàn)證碼開(kāi)發(fā)在JSP上開(kāi)發(fā)驗(yàn)證碼步驟如下:清除緩沖區(qū)
out.clear(); out=pageContext.pushBody();生成驗(yàn)證碼具體代碼示例見(jiàn)課本實(shí)現(xiàn)驗(yàn)證碼刷新當(dāng)用戶看不清楚的時(shí)候可以通過(guò)刷新實(shí)現(xiàn)重新生成驗(yàn)證碼。驗(yàn)證碼的刷新技術(shù)有很多種,一般使用JavaScript刷新驗(yàn)證碼,最方便的方法是,點(diǎn)擊驗(yàn)證碼圖片,獲得新的驗(yàn)證碼用驗(yàn)證碼進(jìn)行驗(yàn)證具體代碼示例見(jiàn)課本認(rèn)識(shí)文件上傳在JavaWeb應(yīng)用開(kāi)發(fā)中,文件的上傳是必不可少的功能,例如上傳簡(jiǎn)歷、上傳圖片、又或者是上傳源代碼等
提到實(shí)現(xiàn)文件上傳,最傳統(tǒng)而且最常被用到的莫過(guò)于文件上傳控件:<inputtype="file">。下面,利用簡(jiǎn)單例子介紹<inputtype=“file”>控件的用法。認(rèn)識(shí)文件上傳文件上傳的本質(zhì),其實(shí)就是把客戶端本地計(jì)算機(jī)的文件保存到網(wǎng)站服務(wù)器中,當(dāng)然,此時(shí)不能簡(jiǎn)單用request.getParameter()方法來(lái)獲得文件的數(shù)據(jù)實(shí)現(xiàn)文件上傳文件上傳包jspsmart文件上傳包功能強(qiáng)大卻非常易用,只需幾行代碼就可以實(shí)現(xiàn)文件的上傳功能。另外,其還可以對(duì)上傳過(guò)程進(jìn)行監(jiān)控,對(duì)文件的大小以及類(lèi)型作出限制。首先,需要在網(wǎng)上下載jspsmart文件上傳包,下載后解壓,里面會(huì)是一個(gè)jar包,使用的時(shí)候?qū)⑵淇截惖巾?xiàng)目的lib文件夾下即可。本例中提供的是jsmartcom_zh_CN.jar實(shí)現(xiàn)文件上傳jsmartcom_zh_CN.jar中提供了很多API,其中比較重要的有以下幾個(gè):com.jspsmart.upload.SmartUploadcom.jspsmart.upload.SmartUpload負(fù)責(zé)進(jìn)行文件上傳,其具有幾個(gè)重要API:實(shí)現(xiàn)文件上傳SmartUpload.initialize(ServletConfig,HttpServletRequest,HttpServletResponse):在進(jìn)行上傳之前,需要進(jìn)行初始化,傳入當(dāng)前Servlet的ServletConfigHttpServletRequest和HttpServletResponse參數(shù)SmartUpload.upload():實(shí)現(xiàn)上傳SmartUpload.getFiles():獲取上傳的所有文件對(duì)象SmartUpload.getFiles().getFile(i):獲取上傳的第i對(duì)象,返回com.jspsmart.upload.File實(shí)現(xiàn)文件上傳jsmartcom_zh_CN.jar中提供了很多API,其中比較重要的有以下幾個(gè):
com.jspsmart.upload.File
com.jspsmart.upload.SmartUpload負(fù)責(zé)進(jìn)行文件上傳,其具有以下重要API:實(shí)現(xiàn)文件上傳File.getFileName():得到文件名File.getFilePathName():得到文件路徑全名File.saveAs(String,int):將文件進(jìn)行保存,參數(shù)1是保存的路徑,參數(shù)2是保存的方式實(shí)現(xiàn)文件上傳具體代碼示例見(jiàn)課本文件下載相信是Jav
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物多樣性保護(hù)與生態(tài)科技手段
- 環(huán)保行業(yè)的大數(shù)據(jù)技術(shù)應(yīng)用案例分享
- 2024秋九年級(jí)化學(xué)上冊(cè) 第三單元 物質(zhì)構(gòu)成的奧秘 課題3 元素第1課時(shí) 元素說(shuō)課稿1(新版)新人教版
- 2024八年級(jí)英語(yǔ)下冊(cè) Unit 7 Know Our WorldLesson 40 Body Language說(shuō)課稿(新版)冀教版
- 現(xiàn)代醫(yī)療設(shè)備制造的嚴(yán)格質(zhì)量管理路徑
- 環(huán)??萍荚谏虡I(yè)領(lǐng)域的應(yīng)用與前景分析
- 構(gòu)建開(kāi)放性的職高課堂教學(xué)模式探索
- 物流信息安全現(xiàn)狀與未來(lái)挑戰(zhàn)
- 現(xiàn)代橋梁結(jié)構(gòu)的智能化設(shè)計(jì)與建設(shè)
- 未來(lái)學(xué)習(xí)方式的變革基于網(wǎng)絡(luò)的個(gè)性化學(xué)習(xí)路徑探索
- 壓力性損傷護(hù)理質(zhì)控細(xì)則及集束化管理措施
- 《批判性思維原理和方法》全套教學(xué)課件
- 產(chǎn)后康復(fù)-腹直肌分離
- 丙烯-危險(xiǎn)化學(xué)品安全周知卡
- 粉條加工廠建設(shè)項(xiàng)目可行性研究報(bào)告
- 《配電網(wǎng)設(shè)施可靠性評(píng)價(jià)指標(biāo)導(dǎo)則》
- 2024年國(guó)家電網(wǎng)招聘之通信類(lèi)題庫(kù)附參考答案(考試直接用)
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計(jì)規(guī)范
- 食品企業(yè)日管控周排查月調(diào)度記錄及其報(bào)告格式參考
- 產(chǎn)品質(zhì)量法解讀課件1
- 第八單元金屬和金屬材料單元復(fù)習(xí)題-2023-2024學(xué)年九年級(jí)化學(xué)人教版下冊(cè)
評(píng)論
0/150
提交評(píng)論