/* * Created on 01.12.2003 * * (c) Stabsstelle IKT-Strategie des Bundes */ package at.gv.egovernment.moa.spss.slinterface.servlets; import java.io.FileInputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import at.gv.egovernment.moa.spss.slinterface.Constants; import at.gv.egovernment.moa.spss.slinterface.Utils; import at.gv.egovernment.moa.spss.slinterface.beans.DataInfoBean; /** * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) */ public class HashInputDataServlet extends HttpServlet { private static Logger logger_ = Logger.getLogger(Constants.LH_SERVLETS_); /** * Default constructor. */ public HashInputDataServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { // Get DataInfoBean object from session HttpSession session = request.getSession(false); if (session == null) { String message = "No session available."; logger_.error(message); throw new ServletException(message); } DataInfoBean dataInfo = (DataInfoBean) session.getAttribute("dataInfo"); // Get parameter inicating which hash input data file to show String hidCountStr = request.getParameter("hidCount"); if (hidCountStr == null) { String message = "Parameter \"hidCount\" not available in request."; logger_.error(message); throw new ServletException(message); } int hidCount = -1; try { hidCount = Integer.parseInt(hidCountStr); } catch (NumberFormatException e) { String message = "Parameter \"hidCount\" (\"" + hidCount + "\") is not a valid string representation of an integer."; logger_.error(message, e); throw new ServletException(message, e); } // Get file name of temporary HID file dataInfo.setHashInputDataCount(hidCount); String hidFilename = dataInfo.getHashInputDataFilename(); // Set content type boolean isSLXHTML = dataInfo.getIsSLXHTMLDocument(); String contenType = (isSLXHTML) ? "text/html" : "application/octet-stream"; response.setContentType(contenType); // Write content from temporary HID file to response OS try { FileInputStream hidFIS = new FileInputStream(hidFilename); OutputStream responseOS = response.getOutputStream(); Utils.transferStreams(hidFIS, responseOS); } catch (Exception e) { String message = "Writing hash input data to response stream failed."; logger_.error(message, e); throw new ServletException(message, e); } } }