我正在使用 GWT(Google Web Toolkit)制作一个网站。
我需要向用户显示一个表格,并让用户下载表格的内容。
在客户端,用户按下“下载”按钮时如何下载文件?
“下载”按钮有一个onClick()
听众。并且客户端类扩展Composite
.
我试图让课程延长HttpServlet
,但它变得太复杂了。
我已经读过这里的帖子:
- http://www.mkyong.com/java/how-to-download-file-from-website-java-jsp/ http://www.mkyong.com/java/how-to-download-file-from-website-java-jsp/
- 使用 Servlet 下载文件时如何使用 GWT? https://stackoverflow.com/questions/2937126/how-to-use-gwt-when-downloading-files-with-a-servlet
但我仍然不知道如何向客户端的用户提供可下载的文件。
您确实需要区分 GWT 客户端 Java 代码和服务器端 Java 代码。
在 GWT Java 代码的客户端
String url = GWT.getModuleBaseURL() + "downloadService?fileInfo1=" + fileInfo1;
Window.open( url, "_blank", "status=0,toolbar=0,menubar=0,location=0");
在非 gwt Java 代码的服务器端 -
在 web.xml 中
<servlet>
<servlet-name>downloadService</servlet-name>
<servlet-class>AAA.BBB.CCC.DownloadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>downloadService</servlet-name>
<url-pattern>/<gwtmodulename>/downloadService</url-pattern>
</servlet-mapping>
在服务器包代码中一个servlet
public class DownloadServlet extends HttpServlet{
protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException
{
String fileName = req.getParameter( "fileInfo1" );
int BUFFER = 1024 * 100;
resp.setContentType( "application/octet-stream" );
resp.setHeader( "Content-Disposition:", "attachment;filename=" + "\"" + fileName + "\"" );
ServletOutputStream outputStream = resp.getOutputStream();
resp.setContentLength( Long.valueOf( getfile(fileName).length() ).intValue() );
resp.setBufferSize( BUFFER );
//Your IO code goes here to create a file and set to outputStream//
}
}
确保将文件内容推送到**outputStream**
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)