Ciao LeleFT!
è che ho letto (male mi sa) le regole prima di postare, e pensavo di averle seguire alla lettera..però in effetti mi sembrava un metodo un po' scomodo!

Correggo!

Premetto che ho RISOLTO, c'era un errore di casting nella jsp, solo che io da ignorante mi aspettavo che il browser me lo segnalasse..invece ci sono i log per questo! grazie ad eclipse.

Posto il tutto casomai qualcuno dovesse avere un problema simile!


Form HTML
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Ricerca in un database</title>
</head>
<body>

<h1>Cerca un nome nel db!</h1>




	<form action="http://localhost:8080/dbsearch/Search" method="post">
		<label>
			Scegli il campo da cercare:</label>
			<select name="campo">
				<option value="nome">Nome</option>
				<option value="cognome">Cognome</option>
			</select>
		
	


		<label>
			Inserisci il nome da cercare:
			<input type="text" name="nome"/>
			<input type="submit" value="Cerca!"/>
		</label>
	</form>

</body>
</html>

Servlet:

codice:


import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.RequestDispatcher;

/**
 * Servlet implementation class Search
 */
public class Search extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Search() {
        super();
        
    }

  //definisco i parametri di connessione al db
	
  	private static final String host_porta="localhost";
  	
  	private static final String nome_db="antonio";
  	
  	private static final String user="root";
  	
  	private static final String password="root";
  	
  	private static final String indirizzo_connessione="jdbc:mysql://"+ host_porta + "/" + nome_db + "?user="+user+"&password="+password+"";
  	
  	
  	
  	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  		
  		try {
  			
  			  			
  			
  			// creo la sessione
  			HttpSession session1=request.getSession();
  			
  			
  		
  		// recupero il campo e il valore da cercare inseriti dall'utente
  		String field=request.getParameter("campo");
  		String search_term=request.getParameter("nome");
  		
  		// oltre ad assegnarli a delle variabili per la lavorazione in locale, li salvo in sessione
  		session1.setAttribute("searchField", request.getParameter("campo"));
  		session1.setAttribute("searchTerm", request.getParameter("nome"));
  		
  		boolean fields_filled=true; // booleano che mi dice se l'utente ha riempito i campi.
  		// se risulterà falso la jsp ritornerà una pagina di errore
  		
  		
  		// mess d'errore se uno dei due campi è vuoto
  		if (field.equals("") | search_term.equals("")) {
  			fields_filled=false;
  					
  		}
  		
  		
  		// altrimenti verifico se i campi sono validi ed eseguo la query
  		else {
  		
  		
  		// carico il driver per la connessione al db
  		Class.forName("com.mysql.jdbc.Driver");
  			
  		// ora mi connetto al db e cerco con una SELECT tutti i record
  		// in cui il campo scelto dall'utente contenga la parola inserita dall'utente
  		
  		Connection conn=DriverManager.getConnection(indirizzo_connessione);
  		
  		
  		Statement stmt=conn.createStatement();
  		
  		String query="SELECT * FROM anagrafica WHERE "+ field +"=\"" + search_term+"\"";
  		
  		
  		ResultSet res=stmt.executeQuery(query);
  		
  		
  		/*
  		 ciclo che finchè ci sono valori nell'oggetto ResultSet (che è una tabella)
  		 * li inserisce nella sessione tramite il metodo setAttribute
  		 * 
  		 * uso il metodo .next() di resultSet che resistuisce true finchè ci sono righe
  		 */
  			
  		// con questo indice so quanti sono i record che soddisfano la ricerca
  		int i=0;
  		
  		if (res.next()) {
  				
  		 
  			do {
  				session1.setAttribute("nome"+i, res.getString("nome"));
  				session1.setAttribute("cognome"+i, res.getString("cognome"));
  				i++;
  			
  		
			} while (res.next());
  		}
  		else {
  			i=0;
  		}
		
  		String resultsNumber=Integer.toString(i);
  		
  		
  		// salvo in sessione l'indice i
  		session1.setAttribute("resultsNumber", resultsNumber);

  		
  		
  		} // fine else che verifica se i campi sono stati riempiti
  		
  		
  		// salvo fields_filled in sessione
  		session1.setAttribute("fields_filled", fields_filled);
  		
  		
  		
  	// ora devo eseguire il forward alla jsp che recupererà i dati e li invierà al client
  		// String forward_url="/results.jsp";
  		RequestDispatcher dsp=getServletContext().getRequestDispatcher("/results.jsp");
  		dsp.forward(request,response);
  		
  		
  		}
  		
  		catch (Exception e) {
  		}
  		
  	}

}

Pagina JSP:

codice:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" import="javax.servlet.http.HttpSession"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Risultati della ricerca</title>
</head>
<body>

<%
String resultsNumber=(String) session.getAttribute("resultsNumber");
String searchField=(String) session.getAttribute("searchField"); String searchTerm=(String) session.getAttribute("searchTerm");
int rN=Integer.parseInt(resultsNumber);
%>

<h3>Risultati della ricerca:</h3>



	E' stato cercato il <%=searchField %> "<%=searchTerm%>".

	Sono stati trovati <%=resultsNumber%> risultati.

	<%
		
		if (rN>0) {
			
			String nomi_trovati[]=new String[rN];
			String cognomi_trovati[]=new String[rN];
			
			int i;
			for (i=0; i<nomi_trovati.length; i++) {
			nomi_trovati[i]=(String) session.getAttribute("nome"+i);
			cognomi_trovati[i]=(String) session.getAttribute("cognome"+i);
			out.println("Nome: "+nomi_trovati[i]+" - Cognome: "+cognomi_trovati[i]+"
");
			}
		}
		
		else {
		out.println("Nessun risultato trovato. <a href=\"/index.html\">Clicca qui</a> per ripetere la ricerca usando altre parole chiave.");
		}
	%>

</body>
</html>