您好,登錄后才能下訂單哦!
本篇內容介紹了“serlet怎么實現文件下載”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
之前沒怎么用過這個,這次項目中用到了,于是總結一下:
應該說主要注意三方面:
1、寫一個servlet
2、在web.xml中配置這個servlet
3、頁面上調用這個servlet
第一:
寫一個servlet,當然要繼承javax.servlet.http.HttpServlet,重寫post或者get方法(看需要),這個servlet的思想就是將要下載的文件寫到文件流中去,而這個文件輸出流就是HttpServletResponse對象的輸出流,如下所示:
public class DownloadServlet extends
HttpServlet{
public void doPost(HttpServletRequest
request,HttpServletResponse response) throws
ServletException,IOException
{
try
{
String
downFilename=request.getParameter("curfile");
String
filepath=request.getParameter("path");
response.setContentType("text/plain");
response.setHeader("Location",downFilename);
response.setHeader("Content-Disposition", "p_w_upload; filename=" +
downFilename);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new
FileInputStream(filepath+downFilename);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
}catch(FileNotFoundException
e1)
{
System.out.println("沒有找到您要的文件");
}
catch(Exception e)
{
System.out.println("系統錯誤,請及時與管理員聯系");
}
}
public void doGet(HttpServletRequest
request,HttpServletResponse response) throws ServletException,
IOException
{
doPost(request,response);
}
}
web.xml配置:
<servlet>
<servlet-name>download</servlet-name>
<servlet-class>com.dichain.common.tools.DownloadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>/Download</url-pattern>
</servlet-mapping>
jsp中調用servlet彈出一個下載對話框:
window.open ('Download?curfile='+curfile+'&path='+path,'newwindow','height=30,width=40,top='+yy+',left='+xx+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
“serlet怎么實現文件下載”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。