Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java internet下载管理器的打印问题_Java_Spring_Servlets_Jasper Reports - Fatal编程技术网

Java internet下载管理器的打印问题

Java internet下载管理器的打印问题,java,spring,servlets,jasper-reports,Java,Spring,Servlets,Jasper Reports,我想使用servlet在java web应用程序中打印文档,并清除报告信息以避免下载简历(SecurityContext.cleanReportInfo())。 当您的系统中没有IDM时,一切都正常,但当IDM运行时,它会发送2个请求,而不是1个请求,通过重定向到/403,一切都会出错,如下面的代码所示 PrintReportServlet protected void service(HttpServletRequest request, HttpServletResponse respons

我想使用servlet在java web应用程序中打印文档,并清除报告信息以避免下载简历(SecurityContext.cleanReportInfo())。 当您的系统中没有IDM时,一切都正常,但当IDM运行时,它会发送2个请求,而不是1个请求,通过重定向到/403,一切都会出错,如下面的代码所示

PrintReportServlet

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ReportDto reportInfo = SecurityContext.getReportInfo();
        if (reportInfo != null) {
            ServletOutputStream outputStream = response.getOutputStream();
            try {
                generateHeaders(response, reportInfo);
                generateContents(outputStream, reportInfo);
            } catch (Exception e) {
                LOGGER.log(Level.WARNING, "Error occurred during print report, nested error message: {0}", e.getMessage());
            } finally {
                outputStream.flush();
                outputStream.close();
                SecurityContext.cleanReportInfo();
            }
        } else {
            response.sendRedirect(request.getContextPath() + "/403");
        }
    }
SecurityContext.java

public static void cleanReportInfo() {
    SecurityContext.getCurrentSession().setAttribute("Report_Info", null);
}
errorreportController.js

$scope.printErrorList = function () {
    errorReportService.printErrorList(function () {

        window.open(contextPath + "/PrintReport");
    });
};
ErrorReportController.java

@RequestMapping(value = "/printError", method = RequestMethod.GET)
@ResponseBody
public String printError() {
    ReportDto reportDto = errorReportService.getReportInfo();
    SecurityContext.setReportInfo(reportDto);
    return success();
}
ErrorReportServiceImpl

public ReportDto getReportInfo() {
    Map<String, Object> parameters = new HashMap<String, Object>();

    parameters.put("jalaliDate", DateUtil.convertToJalali(new Date()).toStringBySlash());
    parameters.put("alahImagePath", ReportUtil.getImagesPath() + File.separator + "alah.png");
    parameters.put("sepahImagePath", ReportUtil.getImagesPath() + File.separator + "sepah.png");
    parameters.put("reporter", SecurityContext.getCurrentUserName());
    parameters.put("classify", "Normal");
    parameters.put("userId",SecurityContext.getCurrentUserId());

    ReportDto reportDto = new ReportDto(
            ReportNames.ErrorReport, DataItems.Report_Type_PDF,
            "error",
            parameters);
    return reportDto;
}
public ReportDto getReportInfo(){
映射参数=新的HashMap();
parameters.put(“jalaliDate”,DateUtil.convertToJalali(new Date()).toStringBySlash());
parameters.put(“alahImagePath”,ReportUtil.getImagesPath()+File.separator+“alah.png”);
parameters.put(“sepahImagePath”,ReportUtil.getImagesPath()+File.separator+“sepah.png”);
parameters.put(“reporter”,SecurityContext.getCurrentUserName());
参数。put(“分类”、“正常”);
parameters.put(“userId”,SecurityContext.getCurrentUserId());
ReportDto ReportDto=新的ReportDto(
ReportNames.ErrorReport,DataItems.Report\u Type\u PDF,
“错误”,
参数);
返回报告到;
}