81,092
社区成员
发帖
与我相关
我的任务
分享
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 javax.sql.DataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import cn.bstar.gale.boss.framework.SpringContextUtil;
public class PdfServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
// 创建response输出流,设置response回应的头部
ByteArrayOutputStream baos = new ByteArrayOutputStream();
res.setContentType("application/pdf");
// 得到request中设置的属性值
Map map = (Map) req.getAttribute("Map");
String file = ((String) req.getAttribute("file")).trim();
ServletContext servletContext = getServletContext();
InputStream is = null;
Connection conn = null;
DataSource ds = (DataSource) SpringContextUtil.getBean("dataSource");
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
try {
is = servletContext.getResourceAsStream(file);
} catch (Exception e) {
}
if (is == null) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">文件" + file + "不存在</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
} else {
JasperPrint jasperPrint = null;
try {
jasperPrint = JasperFillManager.fillReport(is, map, conn);
} catch (Exception e) {
e.printStackTrace();
}
if (jasperPrint == null) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">数据库查询失败,表或者视图不存在</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
} else {
if (jasperPrint.getPages().size() == 0) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">没有查询结果</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
} else {
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,
jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
baos);
try {
exporter.exportReport();
} catch (JRException e) {
throw new ServletException(e);
}
byte[] bytes = baos.toByteArray();
if (bytes != null && bytes.length > 0) {
res.setContentType("application/pdf");
res.setContentLength(bytes.length);
ServletOutputStream ouputStream = res.getOutputStream();
try {
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException ex) {
}
}
}
} else {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">没有查询结果</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
}
}
}
}
try {
conn.close();
} catch (SQLException e) {
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req, res);
}
@Override
public void init() throws ServletException {
System.setProperty("java.awt.headless", "true");
}
}
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
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 javax.sql.DataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRXlsAbstractExporterParameter;
import cn.bstar.gale.boss.framework.SpringContextUtil;
public class CsvServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
// 得到request中设置的属性值
Map map = (Map) req.getAttribute("Map");
String sourceFileName = ((String) req.getAttribute("file")).trim();
ServletContext servletContext = getServletContext();
// 获得数据库连接
Connection conn = null;
DataSource ds = (DataSource) SpringContextUtil.getBean("dataSource");
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
// 获得文件输入流
InputStream is = null;
try {
is = servletContext.getResourceAsStream(sourceFileName);
} catch (Exception e) {
}
// 判断文件输入流是否为空,如果为空,说明文件不存在
if (is == null) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">文件" + sourceFileName
+ "不存在</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
}
// 文件输入流不为空,说明文件存在,填充报表
else {
JasperPrint jasperPrint = null;
try {
jasperPrint = JasperFillManager.fillReport(is, map, conn);
} catch (Exception e) {
}
// 如果
if (jasperPrint == null) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">数据库查询失败,表或者视图不存在</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
} else {
if (jasperPrint.getPages().size() == 0) {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">没有查询结果</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
} else {
JRCsvExporter exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,
jasperPrint);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
baos);
exporter.setParameter(
JRExporterParameter.CHARACTER_ENCODING, "gb2312");
exporter
.setParameter(
JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
exporter
.setParameter(
JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);
exporter.setParameter(JRXlsAbstractExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
Boolean.TRUE);
try {
exporter.exportReport();
} catch (JRException e) {
throw new ServletException(e);
}
byte[] bytes = baos.toByteArray();
if (bytes != null && bytes.length > 0) {
res.setContentType("application/vnd.ms-excel");
res.setHeader("Content-Disposition",
"inline; filename=" + jasperPrint.getName()
+ ".csv");
res.setContentLength(bytes.length);
ServletOutputStream ouputStream = res.getOutputStream();
try {
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
} finally {
if (ouputStream != null) {
try {
ouputStream.close();
} catch (IOException ex) {
}
}
}
} else {
res.setContentType("text/html");
res.setCharacterEncoding("gb2312");
PrintWriter outHtml = res.getWriter();
outHtml.println("<html>");
outHtml.println("<body bgcolor=\"white\">");
outHtml.println("<span class=\"bold\">没有查询结果</span>");
outHtml.println("</body>");
outHtml.println("</html>");
outHtml.close();
}
}
}
}
try {
conn.close();
} catch (SQLException e) {
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req, res);
}
@Override
public void init() throws ServletException {
System.setProperty("java.awt.headless", "true");
}
}