Several separate Content-Disposition headers received from the server in Jasperreports

I am trying to set the content-disposition header in response to the servlet, but I am getting this error in the browser. What should I do?

Duplicate headers received from the server

The response from the server contained duplicate headers. This problem is usually the result of a misconfigured website or proxy server. Only a website or proxy administrator can fix this problem.

Error 349 (network :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): several different Content-Disposition headers are received. It is forbidden to protect against attacks with an HTTP response response.

Here is my servlet controller:

@RequestMapping("/**/paymentOrderReport.pdf")
public class PaymentOrderReportViewController extends org.springframework.web.servlet.mvc.AbstractController {

    private PaymentDao paymentDao;
    private JasperPdfView pdfView;

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {

        response.setContentType("application/pdf");
        response.setHeader("Content-disposition", "attachment; filename=" + "report.pdf");

        PaymentOrderEntity paymentOrderEntity = null;
        String traceCode = request.getParameter(ParamConstants.TRACE_CODE);

        if (traceCode != null) {
            PaymentSheetRequestEntity payRequestEntity = paymentDao.loadByUniqueProperty(PaymentSheetRequestEntity.PROP_TRACE_CODE,
                    traceCode);
            if (payRequestEntity != null) {
                paymentOrderEntity = payRequestEntity.getPaymentOrder();
            }
        }

        if (paymentOrderEntity != null) {
            List<PaymentOrderEntity> result = new ArrayList<PaymentOrderEntity>();
            result.add(paymentOrderEntity);
            JRDataSource jrDataSource = new JRBeanCollectionDataSource(result);

            Map<String, Object> model = new HashMap<String, Object>();
            model.put("reportData", jrDataSource);

            return new ModelAndView(pdfView, model);
        }
        return null;
    }

    public void setPaymentDao(PaymentDao paymentDao) {
        this.paymentDao = paymentDao;
    }

    public void setPdfView(JasperPdfView pdfView) {
        this.pdfView = pdfView;
    }
}

And the JasperPdfView class:

public class JasperPdfView extends AbstractJasperReportsView {

    @Override
    protected void renderReport(JasperPrint populatedReport, Map<String, Object> model, HttpServletResponse response) throws Exception {
        JRPdfExporter jrPdfExporter = new JRPdfExporter();
        if (getConvertedExporterParameters() != null) {
            jrPdfExporter.setParameters(getConvertedExporterParameters());
        }
        jrPdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, populatedReport);
        jrPdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
        jrPdfExporter.exportReport();
    }

}
+5
source
2

Google Chrome , . "report.pdf" ?

HTTP, Content-Disposition ( HTTP) , .

, , [, # ()]. "-: -", , , .

, , May2014.pdf, Chrome

Content-Disposition: attachment; filename=report,May2014.pdf

http

Content-Disposition: attachment; filename=report

Content-Disposition: May2014.pdf

, , HTTP-, , , HTTP- Content-Disposition.

, , .

+14

All Articles