Ayuda con getParameter Applet

Carlos, necesito que me ayudes nuevamente, estoy apuradísima con esto.
Mira sucede que tengo un applet java que debe mostrar dibujos con datos sacados de una base de datos. Como
con el applet no puedo manejar BD lo que hice fue crear una clase con métodos que reciban el indice por ej. El 1
y que me devuelva un valor String que esta en el registro 1 de la BD.
Ahora el applet recibe el indice llamando cuantas veces sea necesario al método especifico y me dibuja los datos de la base de datos.
Ahora lo que realmente necesito es que a través de un formulario la persona ingrese unos datos que luego sean recibidos por el servlet y este se encarga de hacer la consulta a la BD con esos datos y de invocar al applet a través de html, pero pasándole el valor como parámetro que dio como resultado la consulta, el applet la recibe con getParameter.
La cosa es que el applet debe dibujar este dato y relacionarlo con los otros que son sacados de la BD a través de la clase que mencione en un principio, PERO no lo hace, de echo, al dibujarlo, no hace ninguna relación, pareciera que tratara al dato recibido por getParameter de una forma y a los String devueltos por el método que consulta a la BD de otra forma (no el servlet, sino que el método que consulta constantemente a la base de datos)
OJALA ME PUEDAS ayudar PORQUE he leído mil tutoriales de applet, pero ninguno trata cosas tan especificas y en los foros, a
nadie le ha pasado algo similar
S.O.S

1 Respuesta

Respuesta
1
Creo que no entiendo lo que me quieres decir. Tienes un applet que recoge un parámetro con getParameter(). La forma en la que ese parámetro ha sido creado ahora es lo de menos. Además de recibir este parámetro, el applet, una vez creado, se comunica con el servlet para obtener unos strings. Lo que no entiendo es lo de que el applet no relaciona el parámetro inicial con el resto de datos obtenidos. Si esos datos están de alguna manera relacionados, tendrás que implementar esa lógica en el applet.
Por favor, explícame un poco más el problema porque como ves, estoy un poco perdido :-\.
Hola tratare de explicarte mejor, se que es enredado... La aplicación se divide en 4 partes: una página html que tiene un formulario, un servlet que recibe los datos del form y consulta a la BD, un applet y una clase (no servlet) que tiene métodos que retornan datos específicos de la base de datos. El Servlet manda los datos al applet de la sigte. Forma:
out.println("<APPLET CODE='Consultita.class' WIDTH=600 HEIGHT=600>");
out.println("<PARAM NAME=param1 VALUE=\""+rech+"\">");
out.println("</APPLET>");
El applet las recibe asi:
String valor;
public void init(){
valor=this.getParameter("param1");
}
El applet ademas de saber el dato que le manda el servlet (q esta relacionado a un dato q se consulta a la BD de acuerdo a los datos ingresados en el form) necesita saber todos los datos q hay en la BD, para esto llama a los métodos de la clase que tiene por ejemplo este método:
...
...
public String recurso(int indice){
int contador=0;
Vector results = new Vector();
String datos;
String query = "select recurso from pagina";
rs = set.executeQuery(query);
while (rs.next()) {
String rec = rs.getString("recurso");
datos = " "+rec+" ";
results.addElement(datos);
contador++;
}
setResults(results);
java.util.Enumeration enume = queryResults.elements();
int i=0;
String [] recursos = new String [contador];
for(i=0;enume.hasMoreElements() && irecursos = (String)enume.nextElement();
}
return recursos[indice];
}

Entonces si necesito saber el fono del registro 1 llamo al método "recurso(1)"... bueno todo esto para que vaya tomando el 1er registro, luego el 2do, etc y vaya dibujándolos en el applet y coloreando de un color distinto cada vez q se encuentre con el dato q mando el servlet, pero no ocurre así, si hago correr al applet solo con datos recibidos de el método "recurso" sale todo bien dibujado, pero si lo mezclo con el dato recibido del servlet me aparece un dibujo q no relaciona este dato ni lo colorea cuando se repite... si, simulo recibir el dato del servlet con el método recurso todo sale excelente, pero si pongo el q es recibido por getParameter ya no hace lo q quiero, no se porque pasa si se SUPONE q todos son String...
Espero q ahora me hayas entendido un poquito más...
¿Sera q el dato recibido por getParameter no es String? Ah! y con un String asi como este valor="dato"; tampoco resulta q obviamente si es String QUE ENREDO LO SE, pero recurso tb retorna String...S.O.S
Lo que no me cuentas es cómo "mezclas" el parámetro recibido por el applet y los valores obtenidos con en método recurso(). No sé a que te refieres con lo de mezclar. ¿Acaso te refieres a comparar los valores? Mandame el código donde haces esa comparación y le echo un vistazo.
Carlos.
Mira, para que entiendas mejor... con este código no muestra el dato que es recibido por getParameter...
<APPLET ARCHIVE="mysql-connector.jar" CODE="AppletNuevo.class" WIDTH="600" HEIGHT="600">
<PARAM NAME="nombre" VALUE="pazy">
</APPLET>

este es el applet:
///public class AppletNuevo extends JApplet {
Prueba p = new Prueba();
//String palabra,valorparam;
String palabra1,palabra2,palabra3;
public void init() {
//inicializa los colores del applet
setBackground(Color.white);
setForeground(Color.black);
//valorparam=getParameter("param1");
palabra1="holi";
palabra2="aaaaahh";
palabra3=this.getParameter("nombre");
}
public void start(){
}
public void paint(Graphics g) {
//palabra=p.retornable(valorparam);
Graphics2D g2 = (Graphics2D) g;
//mejora la calidad grafica de las figuras
g2.setRenderingHint(RenderingHints. KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
//palabra=p.retornable(valorparam);
g.drawString(palabra1,50, 50);
g.drawString(palabra2,150, 150);
g.drawString(palabra3,150, 350);
}
public void stop(){
}
}//

Bueno y ademas que si cambio el valor de palabra1 o palabra2 y lo vuelvo a correr, me da el mismo resultado anterior, como que no actualizara
S.O.S
Lo de que te salgan otra vez los mismos datos puede ser por la caché. Eso creo que se configura en el navegador, para que no "cachee" los resultados anteriores. Si te pasa eso, prueba a cerrar y abrir el navegador, y limpiar archivos temporales.
Respecto a lo de que no lea el parámetro, me tiene intrigado. Si trazas palabra3 con System. Out. Println(palabra3) ¿Qué te sale en la consola java del navegador?
Prueba a definir el param de esta forma:
<PARAM NAME=nombre VALUE="pazi">
Es decir, sin comillas. He visto que en algunos sitios lo ponen así, aunque creo que funciona de las dos formas, prueba a ver si te reconoce el parámetro. Luego me cuentas:
Carlos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas