求一个JAVA调用ireport的DEMO

a882990123 2016-08-10 12:11:26
如题~ 要服务端调用iport报表的代码~~~~~~~~~~~~~~~~~
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
樱花夜微凉 2017-11-03
  • 打赏
  • 举报
回复
都没 jsp页面 玩什么呢
小灯光环 版主 2016-08-10
  • 打赏
  • 举报
回复
参考一下:
package net.xnzz.servlet;


import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.util.Enumeration;
import java.util.HashMap;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
import net.xnzz.util.DBUtils;

/**
 * jasperreport 生成pdf文件
 * @author WANGJIE
 *
 */
public class JHPDFServlet extends HttpServlet 
{
	private static final long serialVersionUID = 1L;

	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		Connection connection = DBUtils.getDBInstance().getInitDBConnection();
		try 
		{
			//据据jasper文件生成JasperPrint对象
			ServletContext context = this.getServletConfig().getServletContext();
			//String fileName = request.getParameter("fileName");//ireport编译文件:*.jasper(由模板文件*.jrxml文件编译生成)
			File reportFile = new File(context.getRealPath("/WEB-INF/jaspers/"+"jh_result.jasper"));
			//HashMap<String, Object> parameters = new HashMap<String, Object>();//给报表模板文件传参

			//得到枚举类型的参数名称,参数名称若有重复的只能得到第一个--获取页面传来的参数,和模板中文件的sql参数名称一一对应
//			Enumeration<?> temp = request.getParameterNames();
//			   while (temp.hasMoreElements()) 
//			   {
//			    String paramName = (String) temp.nextElement();
//			    String paramValue = request.getParameter(paramName);
//			    parameters.put(paramName, paramValue);
//			   }
			byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), null,connection);
			response.setContentType("application/pdf");
			response.setContentLength(bytes.length);
			ServletOutputStream out = response.getOutputStream();
			out.write(bytes, 0, bytes.length);
			out.flush();
			out.close();
		} 
		catch (JRException e) 
		{
			e.printStackTrace();
		}		
	}
}

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧