web下載文件和跳轉(zhuǎn)的方法
如果不通過(guò)JSP和servlet直接下載文件的話,可以通過(guò)web.xml文件來(lái)識(shí)別文件類型來(lái)進(jìn)行下載。如果要通過(guò)servlet來(lái)下載的話,可以如下所示來(lái)進(jìn)行下載:
但是這樣下載的話有兩個(gè)缺點(diǎn):一個(gè)是我們不知道文件的大小和下載進(jìn)度,二是我們下載文件的文件名字看不到,所以我們進(jìn)行了以下操作:
這樣我們就可以得到文件大小下載進(jìn)度和文件名稱。
開(kāi)發(fā)Web應(yīng)用中會(huì)遇到從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面的問(wèn)題,在Servlet中有兩種跳轉(zhuǎn)方式:
跳轉(zhuǎn)
重定向:配合瀏覽器跳轉(zhuǎn)(此方法不能用兩次),response給瀏覽器帶一句跳轉(zhuǎn)的話,瀏覽器就乖乖跳轉(zhuǎn)了。
轉(zhuǎn)發(fā): 服務(wù)器內(nèi)部跳轉(zhuǎn) request進(jìn)行跳轉(zhuǎn),通過(guò)getRequestDispatcher()方法進(jìn)行轉(zhuǎn)發(fā)待命,然后再經(jīng)過(guò)forword()方法進(jìn)行跳轉(zhuǎn),跳轉(zhuǎn)的話在瀏覽器顯示的地址不變。
實(shí)驗(yàn)測(cè)試重定向和轉(zhuǎn)發(fā):
重定向測(cè)試
轉(zhuǎn)發(fā)測(cè)試:
重定向和轉(zhuǎn)發(fā)的區(qū)別
1.請(qǐng)求的次數(shù)的不同,重定向總共請(qǐng)求了兩次服務(wù)器;轉(zhuǎn)發(fā)則是用戶請(qǐng)求一次可能經(jīng)過(guò)N個(gè)Servlet頁(yè)面由返回到用戶瀏覽器中,是一次請(qǐng)求多次處理的過(guò)程;
2.跳轉(zhuǎn)過(guò)程中鏈接的變化,重定向在跳轉(zhuǎn)中請(qǐng)求了兩次服務(wù)器并且是兩次不同的鏈接地址,在瀏覽器的地址欄可以看到兩次是有變化的;轉(zhuǎn)發(fā)在跳轉(zhuǎn)過(guò)程中瀏覽器請(qǐng)求了一次服務(wù)器,服務(wù)器經(jīng)過(guò)了n個(gè)Servlet頁(yè)面并沒(méi)有改變請(qǐng)求的鏈接地址,因?yàn)橛脩糁徽?qǐng)求了一次,所以在整個(gè)跳轉(zhuǎn)過(guò)程中鏈接地址是沒(méi)有改變的,在瀏覽器的地址欄就可以看到
3.目的不同,重定向只是簡(jiǎn)單的讓用戶訪問(wèn)一個(gè)新的鏈接,而轉(zhuǎn)發(fā)是服務(wù)器要得到用戶的請(qǐng)求內(nèi)容并需要進(jìn)行一部分處理的,所以兩者目的之不同的
- C#利用WebClient實(shí)現(xiàn)兩種方式下載文件
- java webservice上傳下載文件代碼分享
- ASP.NET Web Api 2實(shí)現(xiàn)多文件打包并下載文件的實(shí)例
- ASP.NET(C#) Web Api通過(guò)文件流下載文件的實(shí)例
- asp.net Web Services上傳和下載文件(完整代碼)
- jQuery移動(dòng)web開(kāi)發(fā)之頁(yè)面跳轉(zhuǎn)和加載外部頁(yè)面的實(shí)現(xiàn)
- 在Android系統(tǒng)中使用WebViewClient處理跳轉(zhuǎn)URL的方法
- JAVASCRIPT實(shí)現(xiàn)的WEB頁(yè)面跳轉(zhuǎn)以及頁(yè)面間傳值方法
相關(guān)文章
Hibernate識(shí)別數(shù)據(jù)庫(kù)特有字段實(shí)例詳解
這篇文章主要介紹了Hibernate識(shí)別數(shù)據(jù)庫(kù)特有字段實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06JBuilder2005實(shí)戰(zhàn)JSP之切換控制 圖文步驟
由于在login.jsp的表單中通過(guò)action屬性指定switch.jsp為響應(yīng)的JSP文件,當(dāng)用戶在login.jsp中選定登錄用戶,輸入密碼提交表單后,客戶端將向服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,服務(wù)器即調(diào)用switch.jsp來(lái)響應(yīng)這個(gè)請(qǐng)求2012-08-08jsp跳轉(zhuǎn)getRequestDispatcher()和sendRedirect()的區(qū)別
這篇文章主要介紹了jsp跳轉(zhuǎn)getRequestDispatcher()和sendRedirect()的區(qū)別,需要的朋友可以參考下2014-04-04asp.net getRemoteAddr()與 getRemoteHost()的區(qū)別
getRemoteAddr()與 getRemoteHost()的區(qū)別小結(jié),需要的朋友可以參考下。2009-12-12