annotate src/econnect/wp3_3/server/ExportServlet.java @ 60:6f2d2b6f969a CellTable

Fix KML parser alerts
author Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
date Fri, 14 Dec 2012 16:32:55 +0100
parents 175c1eecaf84
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package econnect.wp3_3.server;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import java.io.File;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 import java.io.FileInputStream;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.io.FileNotFoundException;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.io.IOException;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 import java.io.OutputStream;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
8
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 import javax.servlet.ServletException;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 import javax.servlet.http.HttpServlet;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import javax.servlet.http.HttpServletRequest;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 import javax.servlet.http.HttpServletResponse;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
13
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 public class ExportServlet extends HttpServlet {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
15
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 private void streamFileTo(HttpServletResponse response, File file)
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 throws IOException, FileNotFoundException {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 response.setBufferSize(32768);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 int bufSize = response.getBufferSize();
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
20
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 OutputStream os = response.getOutputStream();
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 FileInputStream fis = new FileInputStream(file);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 byte[] buffer = new byte[bufSize];
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 int bytesRead = 0;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 while ((bytesRead = fis.read(buffer)) > 0) {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 os.write(buffer, 0, bytesRead);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 os.flush();
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 fis.close();
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
31
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 private void prepareResponseFor(HttpServletResponse response, File file) {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 StringBuilder type = new StringBuilder("attachment; filename=");
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 type.append(file.getName());
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 response.setContentLength((int) file.length());
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 response.setContentType("application/octet-stream");
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 response.setHeader("Content-Disposition", type.toString());
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
39
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 public void doGet(HttpServletRequest request, HttpServletResponse response)
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 throws ServletException {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
42
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 OutputStream out = null;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 File exportedFile = null;
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
45 try {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 String fileName = request.getParameter("ExportedFilename");
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 exportedFile = new File("kmlexport/" + fileName);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
48
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 prepareResponseFor(response, exportedFile);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 streamFileTo(response, exportedFile);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
51
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 } catch (Exception e) {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 throw new ServletException("Exception in Export Servlet", e);
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 } finally {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
55 if (out != null) {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 try {out.close();} catch(Exception e){}
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
58
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 if (exportedFile != null) {
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 exportedFile.delete();
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
62
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 }
175c1eecaf84 added export kml feature (not finished)
Sebastian Kruse <skruse@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 }