salve ragazzi ho questo script che funziona bene,ossia fa ciò che voglio,ma fa una cosa strana all'interno del database, ogni vlta che accedo alla pagina con un ip diverso lo memorizza 2 volte nel database siccome a questa pag avrà molti accessi, avrò una tabella con un numero di record doppi.cosa c'è che non va nel codice?

codice:
<html>
 <head>
 <title>ip</title>
 </head> 
<%@ page language="java" %>
 <%@ page import="java.sql.*"%> 
<%@ page import="java.lang.*"%> 
<%@ page import="java.util.*"%> 
<body bgcolor=#FFFF99><center> <big>Domanda </big>


 
<%  
String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; String DB_Url = ("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:/Programmi/Apache Software Foundation/Tomcat 5.5/webapps/ip/ip.mdb"); 	
try 	
{ 		
Class.forName(DRIVER); 	
} 	
catch(ClassNotFoundException e) 
	{ 		
System.out.println(e.toString());	 
System.out.println("File non trovato"); 		
System.exit(1); 	
} 	
try 	
{ 		
Connection conn= DriverManager.getConnection(DB_Url); 		
Statement st = conn.createStatement(); 		
String ip = new String(request.getRemoteAddr()); 		
out.println(ip); 		
String query=""; 		
query="SELECT ip from ipt WHERE ip"; 		
ResultSet rs = st.executeQuery(query);   		
if(!rs.next()) 		
{  	   		
out.println("è la prima volta che accedi a questa pagina"); 			
//crea la stringa SQL per l'aggiornamento 			
String stringaSql = new String ("INSERT INTO ip_tab (ip) VALUES ('"+ip+"')");
st.executeUpdate(stringaSql); 			
int esito; 			
esito = st.executeUpdate(stringaSql); 			
//controlla che tutto sia andato bene   			
if (esito==1) 			
{ 		    		
out.println("eseguita con successo"); 			
} 			
else		 			
{ 				
out.println("Errore, non  stato possibile eseguire"); 			
} 		}//if  		
else 		
{  			
//l'utente ha effuato la visita 			
out.println("Spicenti!
"); 				
}//else  	
conn.close(); 	
}  	
catch(SQLException ex)  	
{ 		
System.err.println("SQLException: " + ex.getMessage()) ; 	
} 	
%>	 		


 </font> 
</body> 
</html>
saluti