Here’s a servlet code example to download a text file from a website.
1. Create a text file named “testing.txt” , put it into the project root folder.
\--servlet (project root folder) \--testing.txt (download file here) \--WEB-INF \--web.xml
2. Servlet code
package org.best.example; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletContext; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDownloadDemo extends HttpServlet{ private static final int BYTES_DOWNLOAD = 1024; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{ response.setContentType("text/plain"); response.setHeader("Content-Disposition", "attachment;filename=downloadname.txt"); ServletContext ctx = getServletContext(); InputStream is = ctx.getResourceAsStream("/testing.txt"); int read=0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while((read = is.read(bytes))!= -1){ os.write(bytes, 0, read); } os.flush(); os.close(); } }
3. Web deployment descriptor
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>serlvetdemo</display-name> <servlet> <servlet-name>ServletName</servlet-name> <servlet-class>com.mkyong.ServletDownloadDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletName</servlet-name> <url-pattern>/DownloadDemo</url-pattern> </servlet-mapping> </web-app>
4. Compiled it and copy to the Tomcat folder\--Tomcat \--webapps \--servlet \-- testing.txt (download file) \--WEB-INF \--web.xml \--classes \--org \--best
\--example \--ServletDownloadDemo.class
No comments:
Post a Comment