📄 logexportservlet.java
字号:
package servlet;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.jatools.core.ZDataProvider;import com.jatools.core.ZPrinterListener;import com.jatools.core.ZReportEvent;import com.jatools.core.ZReportJob;import com.jatools.core.ZReportServer;/** * @author java * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */public class LogExportServlet extends HttpServlet { /** * DOCUMENT ME! * * @param request DOCUMENT ME! * @param response DOCUMENT ME! * * @throws ServletException DOCUMENT ME! * @throws IOException DOCUMENT ME! */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String file = request.getParameter("file"); if (file == null) { throw new ServletException("请指定报表模板文件."); } ZReportJob job = null; try { job = ZReportServer.createJob(new FileInputStream(file)); job.setParameter("file", file); } catch (Exception ex) { throw new ServletException(ex); } //挂接日志监听器 job.addPrinterListener(new LoggerListener()); String as = request.getParameter("as"); if ("pdf".equals(as)) { job.setParameter("as", "pdf"); try { ByteArrayOutputStream ba = new ByteArrayOutputStream(); job.printAsPDF(ba); response.setContentType("application/pdf"); response.setContentLength(ba.size()); ServletOutputStream sos = response.getOutputStream(); ba.writeTo(sos); sos.flush(); } catch (Exception ex) { throw new ServletException(ex); } } else { job.setParameter("as", "dhtml"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { job.printAsDHTML(new TempDirHelper(request),out); } catch (Exception ex) { throw new ServletException(ex); } } }}class LoggerListener implements ZPrinterListener { private static Logger logger = Logger.getLogger("LoggerListener"); /** * DOCUMENT ME! * * @param e DOCUMENT ME! */ public void beginPrintReport(ZReportEvent e) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.jatools.core.ZPrinterListener#beginPrintPage(com.jatools.core.ZReportEvent) */ public void beginPrintPage(ZReportEvent e) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see com.jatools.core.ZPrinterListener#endPrintPage(com.jatools.core.ZReportEvent) */ public void endPrintPage(ZReportEvent e) { // TODO Auto-generated method stub } /** * DOCUMENT ME! * * @param e DOCUMENT ME! */ public void endPrintReport(ZReportEvent e) { ZDataProvider dataProvider = e.getDataProvider(); String msg = "表求格式 : " + dataProvider.getValue("as") + "\t"; msg += ("文件名 : " + dataProvider.getValue("file") + "\t"); msg += ("页数 : " + (e.getPageIndex())); logger.error(msg); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -