package com.fitbank.servlet; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fitbank.report.ReportTypes; import com.fitbank.web.HBParam; public class ReportServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT"); resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); resp.addHeader("Cache-Control", "post-check=0, pre-check=0"); resp.setHeader("Pragma", "no-cache"); OutputStream out = resp.getOutputStream(); try { String path = HBParam.getInstance().getStringValue("reports.path"); String fileName=(String)req.getSession().getAttribute("__REPNAME"); String type=(String)req.getSession().getAttribute("__REPTYPE"); ReportTypes repType=ReportTypes.valueOf(type.toUpperCase()); resp.setHeader("Content-Disposition","inline;filename=\"REP."+repType.getExtension()+"\";"); File file=new File(path+fileName); InputStream in = new FileInputStream(file); resp.setContentType(repType.getContentType()); byte[] data = new byte[9999]; int car=0; do{ car=in.read(data); if(car>0){ out.write(data,0,car); } }while(car>0); in.close(); out.flush(); } catch (Exception e) { e.printStackTrace(); out.write(e.getMessage().getBytes()); } finally { out.close(); } } }