Hello,
I have a servlet that generates a PDF.
Whenever I request the Servlet from my browser (IE 6.0) the Servlet always
get invoked 2 times.
I found some mention of this on a Google Groups search, but the suggested
remedy did not work.
Here is the code from my servlet:
. . .
public void service(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException
{
if (request.getHeader("user-agent").equals("contype"))
{
response.setContentType("application/pdf");
return;
}
iCntr++;
System.out.println("Servlet Call #" + iCntr);
HttpSession session = request.getSession(true);
HashMap refData = null;
Hashtable chartImages = null;
if (session != null)
{
response.setContentType("application/pdf");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
refData = (HashMap)session.getAttribute("refData");
chartImages = (Hashtable)session.getAttribute("chartImages");
boolean bIncludeSummaryGraph = false;
boolean bIncludeIndividualGraph = false;
// Get Parameters. . .
// Optional user-specified title for document
String sReportTitle = request.getParameter("reportTitle");
String sCurrency = request.getParameter("currency");
// Find out which type of graphs the user wants on his/her PDF
String sGraphType = request.getParameter("graphType");
if (sGraphType == null)
{
sGraphType = "both";
}
if (sGraphType.equalsIgnoreCase("individual"))
{
bIncludeIndividualGraph = true;
}
else if (sGraphType.equalsIgnoreCase("both"))
{
bIncludeSummaryGraph = true;
bIncludeIndividualGraph = true;
}
else
{
// Default to showing summary
bIncludeSummaryGraph = true;
}
ByteArrayOutputStream baos = null; // The PDF Byte Output Stream
PDFChartGenerator pdfGenerator = new PDFChartGenerator();
try
{
//create context variable for use in pages
matrix.db.Context context = Framework.getFrameContext(session);
baos = pdfGenerator.generateDocument(context, chartImages, refData,
bIncludeSummaryGraph, bIncludeIndividualGraph,
request.getHeader("Accept-Language"), sReportTitle, sCurrency);
}
catch (Exception e)
{
e.printStackTrace();
throw new ServletException("Exception Occurred: " + e.getMessage());
}
ServletOutputStream out = null;
out = response.getOutputStream();
response.setContentLength(baos.size());
baos.writeTo(out);
out.flush();
out.close();
}
How can I avoid having the servlet invoked multiple times from IE?
Any help is greatly appreciated.
Thanks,
Mark
--
Mark Gilmore
Spry Technology, Inc.
[EMAIL PROTECTED]
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb:
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions