File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes Display of PDF file through a servlet? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Display of PDF file through a servlet?" Watch "Display of PDF file through a servlet?" New topic

Display of PDF file through a servlet?

Anuj Anand
Ranch Hand

Joined: Nov 18, 2000
Posts: 96
I am trying to open a PDF file through a servlet without showing the download box. (A box which asks whether to open or to save it). The problem is the code executes fine in Netscape but in IE it gives a problem .With IE 5.5 the request is submitted but "refresh" needs to be clicked manually to bring up theb PDF file. This servlet is invoked on the click of a button.
However in Netscape it is working absolutely fine.
Can somebody tell me why it is not working for IE please??

import javax.servlet.*;
import javax.servlet.http.*;
public class PDFServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String header_info = req.getHeader("USER-AGENT");
if (header_info.indexOf("MSIE") != -1)
res.setHeader("Content-disposition", "inline; filename=wte.pdf");
res.setHeader("Content-disposition", "inline; filename=\\wte.pdf\\");
//String fileURL = "h:\\temp\\wte.pdf";
String hreffile = SessionManager.SessionHash.uom_get_data("VALUE", "hreffile");
String fileURL = "J:\\J2EE\\Cnapro\\Agentcenter\\inetprint\\" + req.getParameter("HREFFILE");
try {
File file = new File(fileURL);
byte[] byteContents = new byte[(int) file.length()];
FileInputStream in = new FileInputStream(fileURL);
// Read the file.
int retcd =;
ServletOutputStream out = res.getOutputStream();
BufferedOutputStream bos = null;
bos = new BufferedOutputStream(out);
bos.write(byteContents, 0, retcd);
} catch (Exception e) {
William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 13037
I don't know if this has anything to do with your problem, but you should also be setting content length in the headers. That is good general advice for serving any binary data file.
Anuj Anand
Ranch Hand

Joined: Nov 18, 2000
Posts: 96
That could be the reason because files which are over a certain size get displayed fine through the internet explorer (like over 10 KB) but small size files need a refresh to be clicked from IE browser...Any other coding advises...THe aim is to display a simple PDF file through the click of a button on a HTML page.
I agree. Here's the link:
subject: Display of PDF file through a servlet?
It's not a secret anymore!