📄 dbdsreportservlet.java
字号:
package net.ensode.jasperbook;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.io.StringWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.HashMap;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.JRResultSetDataSource;import net.sf.jasperreports.engine.JasperRunManager;public class DbDSReportServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection connection; Statement statement; ResultSet resultSet; ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream reportStream = getServletConfig().getServletContext() .getResourceAsStream("/reports/DbReportDS.jasper"); try { String query = "select a.tail_num, a.aircraft_serial, " + "am.model as aircraft_model, ae.model as engine_model from aircraft a, " + "aircraft_models am, aircraft_engines ae where a.aircraft_engine_code in (" + "select aircraft_engine_code from aircraft_engines " + "where horsepower >= 1000) and am.aircraft_model_code = a.aircraft_model_code " + "and ae.aircraft_engine_code = a.aircraft_engine_code"; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager .getConnection("jdbc:mysql://localhost:3306/flightstats?user=dbuser&password=secret"); statement = connection.createStatement(); resultSet = statement.executeQuery(query); JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet); JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, new HashMap(), resultSetDataSource); resultSet.close(); statement.close(); connection.close(); response.setContentType("application/pdf"); servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { // display stack trace in the browser StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -