Вопрос по java, servlets, jsp – Показать PDF-файл в браузере? [Дубликат]

1

Possible Duplicate:
how to display a pdf file in jsp using servlet

Я извлекаю файл PDF из своей базы данных и помещаю его в файл, подобный этому

<code>String str="select * from files where name='Security.pdf';";
Statement stmt2= conn.createStatement  
                   (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt2.executeQuery(str);
while(rs.next())
{
 InputStream input = rs.getBinaryStream("content");
 //to create file
   File f=new File("c:/pdfile.pdf");
   OutputStream out=new FileOutputStream(f);
   byte buf[]=new byte[1024];
   int len;
   while((len=input.read(buf))>0)
   out.write(buf,0,len);
   out.close();
   input.close();
    System.out.println("\nFile is created..");
}
</code>

Теперь это на конце сервера. На моей стороне клиента всякий раз, когда пользователь нажимает ссылку a href=pdf(pdf is my servlet name) на моей странице jsp я должен отобразить файл, извлеченный из базы данных, в браузере клиента.
What should I do?

Ваш Ответ

2   ответа
2

response.setContentType("application/pdf");

Затем запишите содержимое PDF в объект ответа

Если я & quot; application / pdf & quot; его отображение в Mozilla, но не в Google Chrome :( suraj
какую версию Chrome вы используете?
проверьте свой Adobe Plug-in в Chrome
Возникла проблема с плагином Chrome. Я решил и получил вывод. Спасибо, Мачи! Вы доказали, что вы правы "Амритянка" suraj
Извините, Сурадж. Я здесь не для того, чтобы писать ваш код
2

просто отправьте его обратно в браузер в качестве ответа сервлета. В основном вместо этогоFileOutputStream, использоватьOutputStream что вы получаете от звонкаgetOutputStream() на вашеServletResponse объект. Вам также необходимо установить заголовок Content-Type, чтобы браузер знал, что это PDF-файл.

Запись сервлета в жестко заданный путь опасна, поскольку несколько экземпляров сервлета могут работать одновременно в разных потоках. (Подумайте о том, что произойдет, если два человека введут URL-адрес вашего сервлета в свои браузеры одновременно.) Если они оба одновременно пишут в один и тот же файл, они в итоге повредят его.

Похожие вопросы