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 cantidad, int hasta) {
int num[] = new int[cantidad];
for(int i = 0; i < cantidad; i++) {
//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; j < (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,
user, password);
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 ServletException, IOException {
//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(5, 10);
//imprimimos nuestras preguntas
response.setContentType("text/html");
PrintWriter out = response.getWriter();
for(int i = 0; i < alea.length; i++) {
out.println((1 + 1) + ".-" + preguntas.elementAt(i));
}
}
}
Asi seria mas menos lo quieres.
Saludos