PDA

View Full Version : [JAVA] scrivere un file html


Andale
23-04-2007, 14:21
Sto realizzando un programmino in java il cui compito è estrapolare dati da un database e stampare i risultati su una pagina html.
La mia domanda è questa:
è corretto scrivere la pagina html con un metodo ad hoc che operi nel modo seguente:


Writer creaHtml(Writer file) {
file.write("<html> \n");
file.write("<head> \n");
file.write("<title>pagina Html</title> \n ");
file.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../main.css\" /> \n");
file.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../xtree.css\" /> \n");
.
..
...
file.write("table \n");
file.write("tr \n");
.
..
...

ecc ecc ecc

andbin
23-04-2007, 18:05
è corretto scrivere la pagina html con un metodo ad hoc che operi nel modo seguente:Il fatto di fare tante operazioni di output per scrivere i vari tag non è un problema e va sicuramente bene. Però dovresti prestare attenzione a due cose:

- I fine riga. Se nella stringa metti \n, allora scrivi proprio solo \n. In pratica è il fine riga in stile "Unix". Le specifiche HTML sono molto di manica larga. Un fine linea può essere CR, LF o CR+LF e sono considerati "white-space".
Se ti va bene che i fine riga siano sempre in stile Unix, allora è ok. Altrimenti devi cambiare.

- I caratteri speciali e il set di caratteri. Dal pezzo di codice che hai postato non vedo la dichiarazione del charset in testa al HTML. In HTML il default è ISO-8859-1. Bisogna innanzitutto vedere quale Writer hai usato. Se hai usato FileWriter, il charset usato è quello di default (che potrebbe anche non essere ISO-8859-1). Se hai usato un OutputStreamWriter allora puoi specificare un charset appropriato.
La questione dei caratteri speciali è ancora un'altra. Certi caratteri come < > & " vanno convertiti nelle rispettive entità. Se una stringa di testo la metti tu nel sorgente ti è facile scriverla già con le entità. Ma se una stringa viene generata dinamicamente a run-time, dovresti fare una apposita conversione!