Foros del Web » Programación para mayores de 30 ;) » Java »

obtener datos del Applet en un jsp

Estas en el tema de obtener datos del Applet en un jsp en el foro de Java en Foros del Web. Tengo un Applet que dibuja unos circulos sobre una imagen para seleccionar puntos. Quisiera saber como puedo guardar esos puntos en otra clase java, ya ...
  #1 (permalink)  
Antiguo 16/08/2005, 08:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 2
Antigüedad: 18 años, 8 meses
Puntos: 0
Exclamación obtener datos del Applet en un jsp

Tengo un Applet que dibuja unos circulos sobre una imagen para seleccionar puntos. Quisiera saber como puedo guardar esos puntos en otra clase java, ya sea como imagen(que no es lo mas apropiado por el esacio que ocupa), o los puntos x,y que tengo guardados en un Vector en el applet.
No se si se puedan obtener por medio de un request o de que manera puedo obtener esos valores.
Me urge la respuesta!!!! y estuve investigando y no encontre nada mas que comunicacion entre applets. Gracias
  #2 (permalink)  
Antiguo 17/08/2005, 08:36
Avatar de Ani Alamo  
Fecha de Ingreso: julio-2005
Mensajes: 35
Antigüedad: 18 años, 9 meses
Puntos: 1
Puedes hacer la llamada al applet y dentro de ella, invocar a un servlet de por medio, donde los puntos o lo que quieras del applet, puedas escribirlos a través del canal de comunicaciones del mismo servlet <<outputStream>> guardándolos en un vector de objetos si así lo quieres, e internamente lo procesas y si quieres retornas nuevamente el valor resultado al mismo applet o todo lo que tú quieras hacer con ello.
Puedes usar como referencia esta clase Java y este applet, y luego tú le das forma para tu aplicación:



Código PHP:
package myPackage;

public class 
AppObjJavaScript extends Applet {

    private static 
String strError "Error";
    private 
JSObject win;
    private 
Vector vectorSalida = new Vector();
    private 
Vector vectorEntrada = new Vector();

    public 
AppObjJavaScript() {}

    public 
String devolverDatos() {

        
int i;
        
StringBuffer strRespuesta = new StringBuffer();
        if (
this.vectorEntrada.size() == 0)
            return 
"Ningun valor devuelto";
        else {
            if (
this.vectorEntrada.size() > 1)
                for (
0this.vectorEntrada.size(); i++) {
                    try {
                        
strRespuesta.append(this.vectorEntrada.elementAt(i).toString());
                        
strRespuesta.append(clsConstantes.DELIMITADOR_COMPONENTE);
                    } catch (
Exception e) {
                    }
                } else
                
strRespuesta.append(this.vectorEntrada.elementAt(0).toString());
        }
        return 
strRespuesta.toString();
    }

    public 
int enviarDatos(String strUrl) {
        
URL con null;
        
URLConnection conAbierta null;
        
ObjectOutputStream objOutServlet null;
        
ObjectInputStream objInput null;
        
Object o null;
        
ExcepcionGenerica clex null;
        
String strPantallaerror "";
        
String pantallaerror "";
        
String strPantallaError "";

        try {
            
con = new URL(strUrl);
            
conAbierta con.openConnection();
            
conAbierta.setDoInput(true);
            
conAbierta.setDoOutput(true);
            
conAbierta.setUseCaches(false);
            
conAbierta.setRequestProperty("Content-Type""application/octet-stream");

            
// Obtiene el canal de escritura
            
objOutServlet = new ObjectOutputStream(conAbierta.getOutputStream());

            
// Escribe en el canal
            
objOutServlet.writeObject(this.vectorSalida);
            
objOutServlet.flush();
            
objOutServlet.close();

            
// Vacia el vector de salida
            
this.vectorSalida null;
            
this.vectorSalida = new Vector();

            
// Espera de resultado
            
objInput = new ObjectInputStream(conAbierta.getInputStream());
            
objInput.readObject();
            
objInput.close();
            if (
instanceof ExcepcionGenerica) {
                
clex = (ExcepcionGenericao;
                
/**/
                
System.out.println("Error de tipo ExcepcionGenerica --> " clex.getBolErrorControlado());
                
// En función del tipo de error se muestra una pantalla de error u otra
                
if (clex.getBolErrorControlado()) {
                    
strPantallaerror "window.showModalDialog('/html/errores/avisousuario.html','" 
                       
clex.getStrError() + "','dialogWidth:300px;dialogHeight:175px;status:no;help:no;resizable:no');";
                    
win.eval(strPantallaerror);
                } else {
                    
pantallaerror clex.fncMostrarPantallaError().trim();
                    
strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();
                    
win.eval(strPantallaError);
                }
                return 
Integer.valueOf(clex.getIntFilaTablaError()).intValue();
            } else
                if (
instanceof Vector) {
                    
this.vectorEntrada = (Vectoro;
                    return -
1;
                } else
                    return -
1;
        } catch (
java.io.IOException e) {
            
System.out.println("catch IO: Error de tipo Excepcion Generica --> " e.getMessage());
            
clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " e.getMessage());

            
pantallaerror clex.fncMostrarPantallaError().trim();
            
strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();

            
win.eval(strPantallaError);
            return 
0;

        } catch (
Exception e) {
            
/**/
            
System.out.println("catch: Error de tipo Excepcion Generica --> " e.getMessage());
            
clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " e.getMessage());

            
pantallaerror clex.fncMostrarPantallaError().trim();
            
strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();

            
win.eval(strPantallaError);
            return 
0;
        }
    }


    public 
String getAppletInfo() {
        return 
"Carga una serie de componentes de la factoría de presentación";
    }

    public 
String[][] getParameterInfo() {
        return 
null;
    }
    public 
void init() {
        try {
            
System.out.println("Applet de factoria cargado.");
            
jbInit();
        } catch (
Exception e) {
            
e.printStackTrace();
        }
    }

    private 
void jbInit() throws Exception {
        
win JSObject.getWindow(this);
    }

    public 
String obtenerDatoCompuesto(String servletString argumentosint numColumnasboolean combo) {
        
ObjectInputStream objIn null;
        
Object objLeido null;
        
Vector vectorArrayObjetos = new Vector();
        
Object arrayObjetos[];
        
String strValorDevuelto "";
        
int indiceArray;
        
ExcepcionGenerica clex null;

        
//Llamo al servlet
        
try {
            if (!
argumentos.equalsIgnoreCase(""))
                
argumentos "?" argumentos;

            
URL con = new URL(servlet argumentos);
            
URLConnection conAbierta con.openConnection();

            
conAbierta.setDoInput(true);
            
conAbierta.setUseCaches(false);
            
conAbierta.setRequestProperty("Content-Type""application/octet-stream");

            
//Leer Datos del Servlet
            
objIn = new ObjectInputStream(conAbierta.getInputStream());

            
objLeido = (Object) objIn.readObject();
            
objIn.close();

            if (
objLeido instanceof Vector) {
                
vectorArrayObjetos = (VectorobjLeido;
                
String haySiguiente "F";

                
// Comprobar si manda información de paginación.
                
if (vectorArrayObjetos != null && vectorArrayObjetos.size() > && vectorArrayObjetos.elementAt(0
                          instanceof 
Boolean) {
                    if (((Boolean) 
vectorArrayObjetos.elementAt(0)).booleanValue())
                        
haySiguiente "T";
                    else
                        
haySiguiente "F";
                    
vectorArrayObjetos = (VectorvectorArrayObjetos.elementAt(1);
                }

                if (
combo)
                    
haySiguiente "";

                for (
int indiceVector 0indiceVector vectorArrayObjetos.size(); indiceVector++) {
                    
arrayObjetos = (Object[]) vectorArrayObjetos.elementAt(indiceVector);

                    for (
indiceArray 0indiceArray numColumnasindiceArray++) {
                        if (
arrayObjetos[indiceArray] == null)
                            
strValorDevuelto += " " clsConstantes.DELIMITADOR_CAMPO;
                        else
                            
strValorDevuelto += arrayObjetos[indiceArray].toString() + clsConstantes.DELIMITADOR_CAMPO;
                    }

                    
strValorDevuelto += clsConstantes.DELIMITADOR_FILA;
                }

                if (
strValorDevuelto.length() > 2)
                    
strValorDevuelto haySiguiente strValorDevuelto.substring(0, (strValorDevuelto.length() - 2));
            }
            else
                if (
objLeido instanceof ExcepcionGenerica) {
                    
// capturamos la ClsExcepcion
                    
clex = new ExcepcionGenerica((ExcepcionGenericaobjLeido);

                    
String pantallaerror clex.fncMostrarPantallaError().trim();
                    
String strPantallaError pantallaerror.substring(30pantallaerror.length() - 9).trim();

                    
win.eval(strPantallaError);

                }
                else
                    
strValorDevuelto strError;

        } 
//fin del try

        
catch (Exception excServlet) {
            
//clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " + excServlet.getMessage());
            
clex = new ExcepcionGenerica(excServlet.getMessage());
            
String pantallaerror clex.fncMostrarPantallaError().trim();
            
String strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();
            
win.eval(strPantallaError);

            
strValorDevuelto strError;
        }
        
finally {
            
objIn null;
            
objLeido null;
            return (
strValorDevuelto);
        }
    } 
continúa .............
__________________

Ani Alamo Gómez de González


"Sin Dios no soy nada en este mundo, sin El nada puedo ser... ni las hojas de los árboles se mueven, sino es por su gran poder. Bendito seas Señor."

Última edición por Ani Alamo; 17/08/2005 a las 08:44
  #3 (permalink)  
Antiguo 17/08/2005, 08:39
Avatar de Ani Alamo  
Fecha de Ingreso: julio-2005
Mensajes: 35
Antigüedad: 18 años, 9 meses
Puntos: 1
Segunda parte ....


Código PHP:
 
    
public String obtenerDatoSimple(String servletString argumentos) {
        
ObjectInputStream objIn null;
        
Object objLeido null;
        
String strValorDevueltoServlet;
        
String strValorDevuelto "";
        
int indiceArray;
        
//Llamo al servlet


        
try {
            if (!
argumentos.equalsIgnoreCase(""))
                
argumentos "?" argumentos;
            
URL con = new URL(servlet argumentos);

            
URLConnection conAbierta con.openConnection();
            
conAbierta.setDoInput(true);
            
conAbierta.setUseCaches(false);
            
conAbierta.setRequestProperty("Content-Type""application/octet-stream");
            
//Leer Datos del Servlet
            
objIn = new ObjectInputStream(conAbierta.getInputStream());
            
objLeido = (Object) objIn.readObject();

            
objIn.close();
            if (
objLeido instanceof String) {
                if (
objLeido != null)
                    
strValorDevuelto objLeido.toString();
                else
                    
strValorDevuelto " ";
            } else
                if (
objLeido instanceof ExcepcionGenerica) {
                    
// capturamos la ClsExcepcion
                    
ExcepcionGenerica clex = new ExcepcionGenerica((ExcepcionGenericaobjLeido);

                    
String pantallaerror clex.fncMostrarPantallaError().trim();
                    
String strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();

                    
win.eval(strPantallaError);
                } else
                    
strValorDevuelto strError;
        } catch (
Exception excServlet) {
            
ExcepcionGenerica clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " 
                 
excServlet.getMessage());

            
String pantallaerror clex.fncMostrarPantallaError().trim();
            
String strPantallaError pantallaerror.substring(28pantallaerror.length() - 9).trim();

            
win.eval(strPantallaError);

            
strValorDevuelto strError;
        } 
finally {
            
objIn null;
            
objLeido null;
            return (
strValorDevuelto);
        }
    }
    public 
void recibirDatos(String strValor) {
        
this.vectorSalida.addElement(strValor);
    }


Código del applet incrustado en una JSP
------------------------------------------

Código PHP:


<!-- JSP que carga el Applet a través del cual se llama a los servlets -->

<%@
page session="true" import="exe.comunes.FicheroIni"%>

<
HTML>
    <
HEAD>
        <
META name="GENERATOR" content="IBM WebSphere Page Designer V4.0 for Windows">
        <
META http-equiv="Content-Style-Type" content="text/css">
        <
TITLE></TITLE>
        <
script language="JavaScript">
            function 
fIniciarApplet()
            {
              
document.writeln("<APPLET codebase='<%=FicheroIni.getServidorWebApplets()%>' 
                                      archive='<%FicheroIni.getServidorWebApplets()%>AppObjJavaScript.jar' 
                                      code='exe.applets.AppObjJavaScript.class' 
                          name='AppletFactoria' height='0' width='0' mayscript></APPLET>"
);            
            }
        
</script>
    </HEAD>
    <BODY bgcolor="#FFFFFF" >
    <SCRIPT>
        fIniciarApplet();
        fncBuscarPersonalizacion("miServlet", AppletFactoria);
    </SCRIPT>
    </BODY>
</HTML>


<script>
function fncBuscarPersonalizacion(servlet,applet)
{
    var strParametro = "ACCION=DEFECTO";
    var url = servlet+"?"+strParametro;    
    applet.enviarDatos(url);
    return applet.devolverDatos();    
}
</script> 
__________________

Ani Alamo Gómez de González


"Sin Dios no soy nada en este mundo, sin El nada puedo ser... ni las hojas de los árboles se mueven, sino es por su gran poder. Bendito seas Señor."
  #4 (permalink)  
Antiguo 19/08/2005, 08:08
 
Fecha de Ingreso: agosto-2005
Mensajes: 2
Antigüedad: 18 años, 8 meses
Puntos: 0
Gracias por tu respuesta, me ayudo muchismo para lo que necesitaba.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:08.