package com.fitbank.servlet; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fitbank.dto.management.Detail; import com.fitbank.web.DataManage; import com.fitbank.report.Report; import com.fitbank.report.ReportTypes; public class JSFServlet extends HttpServlet{ private static final long serialVersionUID = 1L; private String path; @Override public void init(ServletConfig config) throws ServletException { path=config.getServletContext().getRealPath("/")+"/rep"; super.init(config); } @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setHeader("Pragma", "no-cache"); resp.setHeader("Cache-Control","no-cache"); OutputStream out=resp.getOutputStream(); try{ String type=req.getParameter("type"); if(type==null){ type="PDF"; } ReportTypes rType=ReportTypes.valueOf(type.toUpperCase()); resp.setContentType(rType.getContentType()); DataManage dm=(DataManage)req.getSession().getAttribute(DataManage.KEY); String key=getDetailKey(req); Detail detail = (Detail)dm.get(key); Report rep=new Report(detail,path,rType); rep.executeReport(out); }catch(Exception e){ e.printStackTrace(); throw new ServletException(e); } finally{ out.close(); } } public String getDetailKey(HttpServletRequest req){ String key= null; if(key == null){ key= DataManage.DETAIL_KEY; String paramKey=req.getParameter("_detail_"); if(paramKey!=null&¶mKey.compareTo("")!=0){ key=paramKey; }else{ paramKey=(String)req.getSession().getAttribute("_detail_"); //this.getSession().setAttribute("_detail_",""); if(paramKey!=null&¶mKey.compareTo("")!=0){ key=paramKey; } } } return key; } }