如果不通過jsp和servlet直接下載文件的話,可以通過web.xml文件來識別文件類型來進行下載。如果要通過servlet來下載的話,可以如下所示來進行下載:
但是這樣下載的話有兩個缺點:一個是我們不知道文件的大小和下載進度,二是我們下載文件的文件名字看不到,所以我們進行了以下操作:
這樣我們就可以得到文件大小下載進度和文件名稱。
開發(fā)web應用中會遇到從一個頁面跳轉到另一個頁面的問題,在servlet中有兩種跳轉方式:
跳轉
重定向:配合瀏覽器跳轉(此方法不能用兩次),response給瀏覽器帶一句跳轉的話,瀏覽器就乖乖跳轉了。
轉發(fā): 服務器內部跳轉 request進行跳轉,通過getrequestdispatcher()方法進行轉發(fā)待命,然后再經(jīng)過forword()方法進行跳轉,跳轉的話在瀏覽器顯示的地址不變。
實驗測試重定向和轉發(fā):
重定向測試
轉發(fā)測試:
重定向和轉發(fā)的區(qū)別
1.請求的次數(shù)的不同,重定向總共請求了兩次服務器;轉發(fā)則是用戶請求一次可能經(jīng)過n個servlet頁面由返回到用戶瀏覽器中,是一次請求多次處理的過程;
2.跳轉過程中鏈接的變化,重定向在跳轉中請求了兩次服務器并且是兩次不同的鏈接地址,在瀏覽器的地址欄可以看到兩次是有變化的;轉發(fā)在跳轉過程中瀏覽器請求了一次服務器,服務器經(jīng)過了n個servlet頁面并沒有改變請求的鏈接地址,因為用戶只請求了一次,所以在整個跳轉過程中鏈接地址是沒有改變的,在瀏覽器的地址欄就可以看到
3.目的不同,重定向只是簡單的讓用戶訪問一個新的鏈接,而轉發(fā)是服務器要得到用戶的請求內容并需要進行一部分處理的,所以兩者目的之不同的
- jsp+servlet實現(xiàn)文件上傳與下載功能
- EJB3.0部署消息驅動Bean拋javax.naming.NameNotFoundException異常
- 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法
- 秒殺系統(tǒng)Web層設計的實現(xiàn)方法
- 將properties文件的配置設置為整個Web應用的全局變量實現(xiàn)方法
- JSP使用過濾器防止Xss漏洞
- 在JSP頁面中動態(tài)生成圖片驗證碼的方法實例
- 詳解JSP 內置對象request常見用法
- 使用IDEA編寫jsp時EL表達式不起作用的問題及解決方法
- jsp實現(xiàn)局部刷新頁面、異步加載頁面的方法
- Jsp中request的3個基礎實踐
- JavaServlet的文件上傳和下載實現(xiàn)方法
- JSP頁面的靜態(tài)包含和動態(tài)包含使用方法