Java程序调用iReport(傻瓜式教程)

来源:互联网 发布:京东算法工程师待遇 编辑:程序博客网 时间:2024/05/21 23:35

1、新建一个Web Project:iReportTest

2、拷贝iReport提供的jar包(根据所使用的iReport版本导入)以及数据库驱动jar到WEB-INF下的lib目录下

3、新建一个Servlet:IreportServlet(不过多叙述)



4、编写IreportServlet

package com.sunyanbo.web.controller;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.jasperreports.engine.JasperRunManager;@SuppressWarnings("serial")public class IreportServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {try {response.setContentType("text/html; charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();Connection conn = null;File iReportFile = new File(this.getServletConfig().getServletContext().getRealPath("/iReport/sample.jasper"));//使用iReport生成的文件,在WebRoot目录下新建                                         //iReport文件夹,并把sample.jasper拷贝到该目录下Class.forName("oracle.jdbc.driver.OracleDriver");Map<String, Object> params = new HashMap<String, Object>();params.put("QUERY_USER_SQL", "SELECT * FROM AQ_YHXXB T");//iReport中设置了一个名称为QUERY_USER_SQL的参数conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:jydb26", "ptas","ptas");JasperRunManager.runReportToHtmlFile(iReportFile.getPath(), params,conn);//自动生成一个html文件,与sample.jasper位于同一目录下response.sendRedirect("/iReportTest/iReport/sample.html");//这里的sample.html是自动生成的,与sample.jasper位于同一目录下out.flush();out.close();} catch (Exception e) {e.printStackTrace();}}}
5、浏览器输入http://localhost:8080/iReportTest/servlet/IreportServlet

【附录】iReport中QUERY_USER_SQL参数的设置


原创粉丝点击