Passaggio di parametri alle web application
In questo articolo vedremo come poter trasferire alle nostre web application dei parametri, sempre utili per poter avere un’applicazione configurabile
L’articolo vorrebbe dare un suggerimento per la scrittura di un codice il più pulito possibile nella gestione dei parametri. Vi è mai capitato, dalla vostra web-app di dover effettuare una connessione a un DB passando login e password? Supponiamo che la cosa avvenga in più parti del vostro codice ed a un certo punto il DBA decide di cambiarvi la login per l’accesso o per problemi vari dovete modificare la password … tragedia … ecco che dovete andare alla ricerca di tutti i punti del codice in cui avete usato login e password.
Ecco che ci viene in aiuto il favoloso web.xml. Inserendo all’interno di web.xml il seguente codice:
<env-entry> <description>LOGIN AL DB</description> <env-entry-name>LOGIN</env-entry-name> <env-entry-value>guardiadiporta</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> <env-entry> <description>PASSWORD DB</description> <env-entry-name>PASSWORD</env-entry-name> <env-entry-value>123456</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
Successivamente potete recuperare queste informazioni semplicemente facendo una lookup:
javax.naming.Context ctx = null; String login = ""; String password = ""; try { ctx = new javax.naming.InitialContext(); login =(String) ctx.lookup("java:comp/env/"+"LOGIN"); password =(String) ctx.lookup("java:comp/env/"+"PASSWORD"); } catch (NamingException e) { e.printStackTrace(); }
In questo modo se dovreste malauguratamente un giorno dover modificare login e password o altri parametri dipendenti dal contesto, allora basterà modificare la stringa appositamente dedicata nel file web.xml.
Quello che riporto sono esperienze che ho vissuto sulla mia stessa pelle e frutto di esperienze personali e visto che questo è il mio primo messaggio spero non mi facciate troppo “nero” per aver magari detto delle ovvietà e magari in futuro cercherò di trattare argomenti più complessi.
Commenti recenti