Una servlet Java per aprire file PDF

Vedremo come aprire o salvare un file con Java

Scriviamo subito la nostra classe, la chiameremo ApriPdf

public class ApriPdf extends HttpServlet{/
	/
	    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/
    	/
    	OutputStream out = null;/
    	/
    	String filePath = "posizione del file";/
    	/
    	File file = new File(filePath);/
    	if(file.exists()){/
    		out = response.getOutputStream();/
    		response.setContentType("application/pdf;charset=UTF-8");/
    		/
    		response.setHeader("Content-Disposition","inline;filename=Nome_del_file.pdf");/

    		FileInputStream fis = new FileInputStream(file);/
    		ByteArrayOutputStream bos = new ByteArrayOutputStream();/
    		byte[] buf = new byte[4096];/
    		/
    		try {/
                for (int readNum; (readNum = fis.read(buf)) != -1;) {/
                    bos.write(buf, 0, readNum);/
                }/
            } catch (IOException ex) { /
            	log.debug(ex.getMessage());/
            	ex.printStackTrace();/
            }/
            /
            byte[] bytes = bos.toByteArray();/
            /
            int lengthRead = 0;/
            /
            InputStream is = new ByteArrayInputStream(bytes);/
            /
            while ((lengthRead = is.read(buf)) > 0) {/
                out.write(buf);/
            }/
            /
            fis.close();/
            bos.close();/
            is.close();/
            out.close();/
    	}/
    	/
    }/
}

Tramite l’header potremo decidere se eseguire il download del nostro file PDF (attachment), oppure se visualizzarlo nella finestra del browser (inline).

Ci manca a questo punto la configurazione della servlet nel file web.xml

<servlet>
    <servlet-name>ApriPdf</servlet-name>
    <servlet-class>posizione.logica.della.classe.ApriPdf</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ApriPdf</servlet-name>
    <url-pattern>ApriPdf</url-pattern>
</servlet-mapping>

Basta così. Ci basterà solo richiamare la nostra servlet dall’indirizzo fisico che abbiamo creato http://host/ApriPdf dal browser per visualizzare o fare il download del file.

Offrimi un caffè su ko-fi.com
Controlliamo randomicamente il funzionamento dei link nei nostri articoli. Nel frattempo, se dei link risultano corrotti segnalacelo tra i commenti, li correggeremo. Grazie.

Francesco

Fondatore e amministratore di Dummy-X dal 2007, condivido interessi, idee, progetti, e soluzioni informatiche. Non vendo prodotti, mi limito a descrivere tecnologie e a mettere a disposizione gli strumenti adatti per poter realizzare idee. Tutto ciò che scrivo è frutto della mia esperienza lavorativa e della mia voglia di imparare. Da sempre studio l'informatica in tutte le sue angolazioni (software, hardware, reti e sicurezza) e negli ultimi anni mi sono specializzato nello sviluppo di web applications. Sono sempre aperto a nuove sfide e alla ricerca e conoscenza delle nuove tecnologie.
 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *