001: package org.contineo.web.document;
002:
003: import org.apache.commons.logging.Log;
004: import org.apache.commons.logging.LogFactory;
005:
006: import org.contineo.core.transfer.ZipExport;
007:
008: import org.contineo.web.SessionManagement;
009: import org.contineo.web.util.Constants;
010:
011: import java.io.ByteArrayOutputStream;
012: import java.io.IOException;
013: import java.io.OutputStream;
014: import java.io.PrintWriter;
015:
016: import javax.servlet.ServletException;
017: import javax.servlet.http.HttpServlet;
018: import javax.servlet.http.HttpServletRequest;
019: import javax.servlet.http.HttpServletResponse;
020:
021: /**
022: * Tis servlet is responsible of zip export
023: *
024: * @author Marco Meschieri
025: * @version $Id: ExportZip.java,v 1.1 2006/08/27 06:14:21 marco Exp $
026: * @since ###release###
027: */
028: public class ExportZip extends HttpServlet {
029: private static final long serialVersionUID = 1L;
030: protected static Log logger = LogFactory.getLog(ExportZip.class);
031:
032: /**
033: * Constructor of the object.
034: */
035: public ExportZip() {
036: super ();
037: }
038:
039: public void doGet(HttpServletRequest request,
040: HttpServletResponse response) throws ServletException,
041: IOException {
042: if (SessionManagement.isValid(request.getSession(false))) {
043: try {
044: String username = (String) request.getSession(false)
045: .getAttribute(Constants.AUTH_USERNAME);
046: String menuId = request.getParameter("menuId");
047: String level = request.getParameter("level");
048:
049: if (level == null) {
050: level = "all";
051: }
052:
053: ZipExport exporter = new ZipExport();
054:
055: if (level.equals("all")) {
056: exporter.setAllLevel(true);
057: }
058:
059: ByteArrayOutputStream bos = exporter.process(Integer
060: .parseInt(menuId), username);
061: response.setContentType("application/zip");
062: response.setContentLength(bos.size());
063: response.setHeader("Content-Disposition",
064: "attachment; filename=\"ZipExport.zip\"");
065:
066: // Headers required by MS Internet Explorer
067: response.setHeader("Pragma", "public");
068: response.setHeader("Cache-Control",
069: "must-revalidate, post-check=0,pre-check=0");
070: response.setHeader("Expires", "0");
071:
072: OutputStream os;
073: os = response.getOutputStream();
074: bos.flush();
075: os.write(bos.toByteArray());
076: os.flush();
077: os.close();
078: } catch (Exception e) {
079: logger.error(e.getMessage(), e);
080: }
081: }
082: }
083:
084: /**
085: * The doPost method of the servlet. <br>
086: *
087: * This method is called when a form has its tag value method equals to
088: * post.
089: *
090: * @param request the request send by the client to the server
091: * @param response the response send by the server to the client
092: * @throws ServletException if an error occurred
093: * @throws IOException if an error occurred
094: */
095: public void doPost(HttpServletRequest request,
096: HttpServletResponse response) throws ServletException,
097: IOException {
098: response.setContentType("text/html");
099:
100: PrintWriter out = response.getWriter();
101: out
102: .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
103: out.println("<HTML>");
104: out
105: .println(" <HEAD><TITLE>Download Document Servlet</TITLE></HEAD>");
106: out.println(" <BODY>");
107: out.print(" This is ");
108: out.print(this .getClass());
109: out.println(", using the POST method");
110: out.println(" </BODY>");
111: out.println("</HTML>");
112: out.flush();
113: out.close();
114: }
115: }
|