package com.norteksoft.wf.engine.web.servlet; import java.io.IOException; 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.jbpm.internal.log.Log; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.wf.engine.service.PdfManager; /** * Servlet implementation class WebOffice */ public class WebPdf extends HttpServlet { private static final long serialVersionUID = 1L; private static final Log log = Log.getLog(WebPdf.class.getName()); /** * @see HttpServlet#HttpServlet() */ public WebPdf() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PdfManager pdfManager = (PdfManager)ContextUtils.getBean("pdfManager"); try { DBstep.iMsgServer2000 msgObj = new DBstep.iMsgServer2000(); if (request.getMethod().equalsIgnoreCase("POST")) { msgObj.MsgVariant(readPackage(request)); pdfManager.operatePdf(msgObj); } else { msgObj.MsgError("请使用Post方法"); msgObj.MsgTextClear(); msgObj.MsgFileClear(); } sendPackage(msgObj,response); } catch (Exception e) { System.out.println(e.toString()); } } // *************接收流、写回流代码 开始 ******************************* //取得客户端发来的数据包 private byte[] readPackage(HttpServletRequest request) { byte mStream[] = null; int totalRead = 0; int readBytes = 0; int totalBytes = 0; try { totalBytes = request.getContentLength(); mStream = new byte[totalBytes]; while (totalRead < totalBytes) { request.getInputStream(); readBytes = request.getInputStream().read(mStream, totalRead, totalBytes - totalRead); totalRead += readBytes; continue; } } catch (Exception e) { log.error(e.getMessage(), e); } return (mStream); } //发送处理后的数据包 private void sendPackage( DBstep.iMsgServer2000 msgObj,HttpServletResponse response) { try { ServletOutputStream OutBinarry = response.getOutputStream(); OutBinarry.write(msgObj.MsgVariant()); OutBinarry.flush(); OutBinarry.close(); } catch (IOException e) { System.out.println(e.toString()); } } }