Есть сервлет:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ru.dsu.saidov.web.beans.Book;
import ru.dsu.saidov.web.database.Database;
public class ShowPdf extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/pdf");
OutputStream out = response.getOutputStream();
PreparedStatement stmt = null;
ResultSet rs = null;
Connection conn = null;
int index = Integer.valueOf(request.getParameter("id"));
try {
conn = Database.getConnection();
stmt = conn.prepareStatement("SELECT content FROM Book WHERE id = ?");
stmt.setInt(1, index);
rs = stmt.executeQuery();
String s = System.getProperty("user.dir");
File f = null;
while (rs.next()) {
try {
f = new File(s.substring(0, s.length() - 6) + "generated/jsp/upload/" + rs.getString("content"));
//home/admin/GlassFish_Server/glassfish/domains/domain/generated/jsp/upload/имя файла
System.out.println(f.exists());
byte[] bytesArray = new byte[(int) f.length()];
FileInputStream fis = new FileInputStream(f);
fis.read(bytesArray);
fis.close();
out.write(bytesArray);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
out.close();
}
}
} catch (SQLException ex) {
Logger.getLogger(ShowPdf.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
Logger.getLogger(ShowPdf.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Из БД получаю имя файла, затем определяю путь к нему в ФС. Файл правильно находится, но вот pdf не получается отобразить. Но при этом никаких ошибок не вываливается. Что я не так делаю, подскажите?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Читаю (стр 336)
Есть map вида Map<BigInteger, Map<BigInteger, Object>> В реальности иерархия гораздо сложнееКак пробежаться по всем маппам и везде, где встречено нужное...
Публикую в вк результат игрыЕсли публиковать как сообщение , то результат можно редактировать в вк
Пользуюсь IntelliJ Idea, решил по фану конвертировать свой код Java-код в Kotlin, дабы поглядеть как выглядят мои алгоритмы на новом языкеНо чуть позже...