我正在使用GWT(Google Web Toolkit)来建立一个网站.我需要向用户显示一个表,并让用户下载表的内容.
在客户端,用户如何在按下"下载"按钮时下载文件?
"下载"按钮有一个onClick()监听器.客户端类扩展Composite.
我试图让类扩展HttpServlet,但它变得太复杂了.
我已在这里阅读帖子:
但我仍然不知道如何在客户端向用户提供可下载文件.
app*_*tup 22
您真的需要区分GWT客户端Java代码和服务器端Java代码.
在GWT Java代码的客户端
String url = GWT.getModuleBaseURL() + "downloadService?fileInfo1=" + fileInfo1;
Window.open( url, "_blank", "status=0,toolbar=0,menubar=0,location=0");
Run Code Online (Sandbox Code Playgroud)
在非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>
Run Code Online (Sandbox Code Playgroud)
在服务器包代码中有一个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//
}
}
Run Code Online (Sandbox Code Playgroud)
确保将文件内容推送到**outputStream**.
| 归档时间: |
|
| 查看次数: |
22357 次 |
| 最近记录: |