實現pdf文檔的servlet例子

來源:互聯網
上載者:User

package appointmanager;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
//import net.sf.jasperreports.engine.*;//.jasper.engine.*;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperRunManager;
import util.*;
import java.sql.*;

/**
 * <p>Title: Lims B/S版</p>
 * <p>Description: Lims B/S改版</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: LabTech</p>
 * @author 熊勤學
 * @version 1.1
 */

public class GetAppointReport extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=gb2312";
  //Initialize global variables
  public void init() throws ServletException {
  }
  //Process the HTTP Get request
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String id = request.getParameter("id");
    if (id == null) {
      id = "";
    }
   
    try{
      DBUtils dataSource=new DBUtils();
      Connection conn=dataSource.conn_odbc();
      ServletContext servletContext =this.getServletContext();
      //File reportFile = new File(servletContext.getRealPath("/WEB-INF/classes/report/testContract.jasper"));//newappoint.jasper
      File reportFile = new File(servletContext.getRealPath("/WEB-INF/classes/report/appointinfo.jasper"));
      if (!reportFile.exists())
   throw new JRRuntimeException("File dataSourceTest.jasper not found. The report design must be compiled first.");
      Map parameters = new HashMap();
      //parameters.put("wtbh",id); //給報表設定參數值
      parameters.put("ID",id);
      byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);
      System.out.println("ID========"+id+";;"+reportFile.getPath());
      response.setContentType("application/pdf");
      response.setContentLength(bytes.length);
      ServletOutputStream ouputStream = response.getOutputStream();
      ouputStream.write(bytes, 0, bytes.length);
      ouputStream.flush();
      ouputStream.close();
    }
    catch(Exception e){
      response.setContentType(CONTENT_TYPE);
      PrintWriter out = response.getWriter();
      out.print(e.getMessage());
    }
  }
  //Process the HTTP Post request
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
  //Clean up resources
  public void destroy() {
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.