PDA

View Full Version : Lettura jsp


Martina.Sfc
15-12-2016, 09:52
Salve a tutti, vorrei chiedervi un parere.

In una pagina jsp del mio programma ho chiamato la segunte pagina:


<%@pageimport= "tiw. RicercaNazione"%>
<%
String nn = request.getParameter("nazione".trim());
RicercaNazione rn = new RicercaNazione ("war/WEB-INF/Disoccupazione.csv", "war/WEB-INF/Sigle.txt");
out.print(rn.query(nn));
%>



in cui ho un semplice programma cosė :


package tiw;


import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;


public class RicercaNazione {
public HashMap <String, Nazione> ln;
public ArrayList <Regione> lr;
public HashMap <String, String> s;

public RicercaNazione (String file1, String file2) {
ln = new HashMap <String, Nazione> ();
lr = new ArrayList <Regione> ();
s = new HashMap <String, String> ();

try {
BufferedReader br = new BufferedReader (new FileReader (file1));
String line;
while ((line = br.readLine()) != null) {
String [] e = line.split(",");
String nazione = e[0].substring(0, e[0].length()-2);
String regione = e[1].trim();
Double valore = Double.parseDouble(e[2].trim());
Regione r = new Regione (nazione, regione, valore);
lr.add(r);
}
br.close();
}
catch (Exception e) {
e.printStackTrace();
}
try {
BufferedReader br1 = new BufferedReader (new FileReader (file2));
String line2;
while ((line2 = br1.readLine()) != null) {
String [] e = line2.split("=");
String codice = e[0].trim().toLowerCase();
String nome = e[1].trim().toLowerCase();
s.put(codice, nome);
}
br1.close();
}
catch (Exception e ) {
e.printStackTrace();
}

for (int i=0; i<lr.size(); i++) {
for (String j: s.keySet()) {
if (lr.get(i).nazione.toLowerCase().trim().equals(j)) {
Nazione n = ln.get(j.trim());
if (n == null) {
Nazione n1 = new Nazione (s.get(j).trim(), j.trim());
ln.put(j.trim(), n1);
n1.add_regione(lr.get(i));
}
if (n != null) {
n.add_regione(lr.get(i));
}
}
}
}
}
public String query (String nn) {
StringBuffer sb = new StringBuffer ();
for (String i : ln.keySet()) {
if (nn.toLowerCase().trim().equalsIgnoreCase(ln.get(i).nome.trim().toLowerCase())) {
double td = (double) 0;
double ts = (double) 0;
for (int j=0; j<ln.get(i).regioni.size(); j++) {
ts += ln.get(i).regioni.get(j).valore;
}
td = (double) ts / ln.get(i).regioni.size();
sb.append("<p class = \"center\">"+"Hai digitato <b>"+nn+"</b>" + "\t"+"il tasso di disoccupazione č:" + td +"</p>");
}
}
return sb.toString();
}

public static void main (String [] args) {
RicercaNazione rn = new RicercaNazione ("war/WEB- INF/Disoccupazione.csv", "war/WEB-INF/Sigle.txt");
System.out.print(rn.query("Ungheria"));
}

}


Ho verificato tramite il main e il mio codice compila e mi restituisce i dati corretti.
Tuttavia quando eseguo il programma non stampa sul web la mia richiesta.
č molto strano, dato che ho anche provato a stampare solamente la stringa di input e anche quella la legge correttamente.
Potete aiutarmi?
Grazie a tutti.