ireport在jsp中的调用例子

 <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page import="java.io.*,java.sql.*,net.sf.jasperreports.engine.*" %>
<%@ page import="com.microsoft.sqlserver.jdbc.SQLServerDriver" %>
<%@ include file="/common/header.jsp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>报表打印</title>
 <link rel="stylesheet" type="text/css" href="<s:property value="%{default_css}"/>" />
</head>

<body id="Body">
    <%
        String reportName = request.getParameter("reportName");
        //报表编译之后的.jasper文件的存放位置
        File reportFile = new File(application.getRealPath("/report/resource/jasper/"+reportName+".jasper"));
        String url = "jdbc:sqlserver://liubin:1433;DatabaseName=db_forest_police";
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        //传递报表中用到的参数值,这里是空值
        Map parameters = new HashMap();
       
        System.out.println("-----------conn---------");
        //连接到数据库
        Connection conn = DriverManager.getConnection(url,"sa","time0442");
        System.out.println("----------jasper begin-----------");
        //在控制台打印报表文件的物理路径
        System.out.println("****物理路径 ***"+reportFile.getPath());
       
        byte[]bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);
       
        System.out.println("---------jasper end-------");
        response.setContentType("application/pdf");
        response.setContentLength(bytes.length);


        //清除输出对象的冲突(因jsp本身有自己的out输出对象,如果去除下面的语句,则response.getOutputStream()得到的输出对象与原来存在的out对象冲突,会报异常)

       out.clear();out=pageContext.pushBody();
       
        ServletOutputStream output = response.getOutputStream();
        output.write(bytes,0,bytes.length);
        output.flush();
        output.close();
       
        try{
            if(conn!=null){
               conn.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
     %> 
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值