lunedì 23 marzo 2009

Inserire immagine favicon

In questo articolo ci occupiamo di come definire una favicon per un'applicazione web scritta in java. La favicon è la piccola immagine che viene visualizzata sul browser nella barra degli indirizzi a sinistra di un URL e che facilita l'individuazione del nostro sito quando viene aggiunto ai preferiti. Un classico esempio di favicon è l'icona che compare a sinisra dell' URL quando si accede alla home page di google.



Per rendere disponibile e visibile tale icona dobbiamo rispettare le seguenti specifiche:
  • il nome dell'immagine deve essere favicon.ico (non è sufficiente rinominare una gif, bmp, o altro, ma bisogna necessariamente disporre di un programma specifico per la generazione di immagini con estensione .ico, per esempio irfanview, liberamente scaricabile)
  • avere dimensioni 16x16 pixel






  • l'immagine deve essere disponibile all'URL http://<miosito.it>/favicon.ico. Per esempio se si usa Glassfish, l'application server realizzato da Sun Microsystems come implementazione di riferimento della specifica Java EE 5, bisognerà collocare l'icona in <glassfish_domain_path>\docroot, e non semplicemente nella root della nostra applicazione. L'icona sarà applicata a tutte le applicazioni che girano sul dominio glassfish_domain_path.

In alternativa, soprattutto se si vuole definire una favicon diversa per ognua delle applicazioni definite nello stesso dominio, nella sezione <head> delle pagine web in cui si voglia visualizzare la favicon deve essere inserita una tag link con attributi rel e href opportunamente definiti, al seguente modo:

<html>
    <head>
        <link rel="shortcut icon" href="favicon.ico">
    
    .....
    </head>
    <body>
        .....
    </body>
</html>


Per evitare l'operazione ripetitiva di dover definire in ogni pagina la tag link, è possibile utilizzare il meccanismo delle proprieta di gruppo di JSP(mediante <jsp-property-group> in web.xml). Per come abbiamo definito il contenuto di href nel nostro esempio è necessario che il file favicon.ico ora si trovi nella root della nostra applicazione, ma è comunque possibile collocare il file anche in una sottodirectory, per esempio /res, cambiando adeguatamente il valore di href:




Trattandosi di un'icona è opportuno, ma non necessario, istruire il container circa il mime-type del file favicon.ico. In un contesto di programmazione java lato server ciò si traduce nell'aggiunta di un nuovo <mime-mapping> nel descrittore web.xml:


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
    .....
    <mime-mapping>
        <extension>ico</extension>
        <mime-type>image/x-icon</mime-type>
    </mime-mapping>
</web-app>




Nessun commento: