开发者使用JasperReport——报表输出到网页

前言

上一篇简单介绍了如何使用jasperReport生成报表,那么本篇将会在其基础上将报表输出到web页面上。

 

正题

   记得在JasperReport简介中我介绍了jasperReport可以支持多种输出格式,如pdf,html等,那么在本实例中将会使用将报表以pdf的格式输出到web页面上。

 

1.编写servlet

   我们不需要完全在上一个例子的基础上,只需要将上一个例子做到第3步即可,即将jrxml文件编译成jasper文件后即可,之后我们就需要新建一个servlet,如下:


packagecom.dan.servlet;

 

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.PrintWriter;

importjava.io.StringWriter;

importjava.util.HashMap;

 

importjavax.servlet.ServletException;

importjavax.servlet.ServletOutputStream;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

 

importnet.sf.jasperreports.engine.JREmptyDataSource;

importnet.sf.jasperreports.engine.JRException;

importnet.sf.jasperreports.engine.JasperRunManager;

 

/**

 * 该servlet可以将报表输出到web页面

 * @author zdd

 *

 */

publicclass FirstReportSendToBrowserServlet extends HttpServlet {

 

/**

 *

 */

privatestatic final long serialVersionUID = 2174316885912562306L;

 

@Override

protectedvoid doGet(HttpServletRequest req, HttpServletResponse resp)

throwsServletException, IOException {

ServletOutputStreamservletOutputStream = resp.getOutputStream();

//获取报表的编译文件,后面要将对其进行填充数据

InputStreamreportStream =getServletConfig().getServletContext().getResourceAsStream("/WEB-INF/classes/reports/FirstReport.jasper");

try{

//由于没有数据,故这里使用空参数和空数据源,该方法需要抛出JRException异常

JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,newHashMap(),new JREmptyDataSource());

resp.setContentType("application/pdf");

servletOutputStream.flush();

servletOutputStream.close();

}catch(JRExceptione){

StringWriterstringWriter = new StringWriter();

PrintWriterprintWriter = new PrintWriter(stringWriter);

e.printStackTrace(printWriter);

resp.setContentType("text/plain");

resp.getOutputStream().print(stringWriter.toString());

}

}

 

}

 

   其实这个里面的工作跟上一个实例中FirstReportFill类的工作类似,只不过这里不仅仅是填充数据,而是使用runReportToPdfStream方法对jasper文件进行填充数据并转换成pdf文件格式进而输出到页面上,要注意写resp.setContentType("application/pdf");这句话。

 

2.配置web.xml

   跟往常一样,要想使用servlet,你需要配置servlet

  <servlet>

         <servlet-name>FirstReport</servlet-name>

         <servlet-class>com.dan.servlet.FirstReportSendToBrowserServlet</servlet-class>

  </servlet>

  <servlet-mapping>

         <servlet-name>FirstReport</servlet-name>

         <url-pattern>/FirstReport</url-pattern>

  </servlet-mapping>

 

3.运行项目

   启动项目后,输出栏会有一些错误(可能是由于jar包的问题,但是不影响运行),在地址栏输入该报表的地址即可在页面显示该报表:

 


小结:

   该实例是jasperReport输出的一种最常见的方式,之后的例子中输出都是使用该方式。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值