Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/09/2004, 11:40
Avatar de goncafa
goncafa
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
Eso que preguntas es la uno es bastantesencillo, y aqui te dejoel ejemplo mas o menos de lo quepides

clase Aleatorios.java
Código PHP:
public class Aleatorios {
    
//cone ste metodo retonamos el arreglo lleno y le pasamos como
    //parametro el numero de aleatoriosque queremos y entre los
             //numeros que se quiere obtener los aleatorios
    
public int[] getAleatorios(int cantidadint hasta) {
        
int num[] = new int[cantidad];
        
        for(
int i 0cantidadi++) {
            
//generamos el numero aleatorio
            
int alea = (int) (Math.random() * max);
            
            
//ingresamos el numero al arreglo
            
num[i] = alea;
            
            
//vemos si existe o no ya el numero, para ello se ejcuta
            //un nuevo ciclo hasta cantidad - 1 para que no se compare
            //el numero a si mismo
            
for(int j 0< (cantidad 1); j++) {
                if(
num[j] == alea) {
                    
//el numero ya existia por tanto se baja el i para que no se tome en cuenta
                    //el ultimo numeroingresado y asi se borra en la siguiente iteracion
                    
--i;
                    
                    
//como ya lo encontramos no vale la pena segir ejecutando
                    //este cilo por tanto lo terminamos
                    
break;
                }
            }    
        }
        
        
//en estepunto ya tenemos generado el los numeros sin repetirse
        //por ende los retonamos
        
return num;
    }

ahora el Servlet

Preguntas.java
Código PHP:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;

public class 
Foro extends HttpServlet {
    
Vector preguntas;
    
Connection con;
    
ResultSet res;
    
Statement stm;
    public 
void init() throws ServletException {
        
super.init();
        
        
//todoe sto lo hacemos en este metodo pues solose ejcuta una vez
        //la primera vez que se pide el servlet, por ende la conexion a la BD
        //solo sera aca y la dejamos cerrada y nuetro vector lleno
        
preguntas = new Vector();
            
            
//nos conectamos a labase de datos
            
String dbName "nombre_db";
            
String user "nombre_usuario";
            
String password "password";
            
            try {
                Class.
forName("com.mysql.jdbc.Driver").newInstance();
                
                try {
                    
con DriverManager.getConnection("jdbc:mysql://localhost:3306/" dbName,
                                                    
userpassword);
                                                    
                    
stm con.createStatement();
                    
                    
String sql "SELECT * FROM tabla_preguntas";
                    
                    
res stm.executeQuery(sql);
                    
                    
//llenamos el vector
                    
while(res.next()) {
                        
preguntas.add(res.getString("campo_pregunta"));
                    }
                    
                    
//cerramos la conexion
                    
con.close();
                    
stm.close();
                    
res.close();
                } catch(
SQLException sqlE) {
                    
//fallo la base de datos
                
}
            } catch(
Exception e) {
                
//no se cargo el driver
            
}
    }
    
    public 
void doGet(HttpServletRequest request,HttpServletResponse response
        
throws ServletExceptionIOException {
            
//aca ya esta nuestro vector lleno y para todaslas siguientes peticiones
            //a este servlet se ocupara el mismo y ya no sevolevera a conectar
            //a la base de datos hasta que no se reinicie el servidor
            
            //ahora regogemos nuestros 5 numeros aleatorios
                                       //entre 1 y 10
            
int alea[] = new Aleatorios().getAleatorios(510);
            
            
//imprimimos nuestras preguntas
            
response.setContentType("text/html");
            
PrintWriter out response.getWriter();
            
            for(
int i 0alea.lengthi++) {
                
out.println((1) + ".-" preguntas.elementAt(i));
            }
        }

Asi seria mas menos lo quieres.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo

Última edición por goncafa; 07/09/2004 a las 15:23