Servlet下載伺服器上的文件Demo
- 2019 年 10 月 7 日
- 筆記
下載文件
1.直接使用a標籤來去下載
有些內容會瀏覽器自動解析
瀏覽器不能解析的文件才會被下載
2.通過發送Servlet請求來去下載
通過發送一個Servlet請求,把文件名發送給伺服器
發送給伺服器後,接收到文件名參數,獲取文件的絕對地址
通過流的形式來去寫到瀏覽器
還得要告訴文件是什麼類型
瀏覽器是以MIME的類型來識別類型
this.getServletContext().getMimeType(「文件名稱」)
設置響應的類型
res.setContentType("MIME類型")
設置響應頭,告訴瀏覽器不要去解析,是以附件的形式打開
res.setHeader("Content-Dsiposition","attachment;filename="+文件名)
解決中文名稱亂碼問題
獲取中文參數報錯問題
高版本tomcat中的新特性:就是嚴格按照 RFC 3986規範進行訪問解析,而 RFC 3986規範定義了Url中只允許包含英文字母(a-zA-Z)、數字(0-9)、-_.~4個特殊字元以及所有保留字元(RFC3986中指定了以下字元為保留字元:! * 』 ( ) ; : @ & = + $ , / ? # [ ])
解決方案
…/conf/catalina.properties中,找到最後注釋掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行
老九學堂會員社群出品
作者:柳成萌
老九學堂會員社群出品
作者:柳成萌