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

Validar applet para acceder a la maquina cliente

Estas en el tema de Validar applet para acceder a la maquina cliente en el foro de Java en Foros del Web. Hola a todos.. TEngo entendido que para que tu applet java pueda acceder a archivos del cliente o manipular puertos de impresora u otras cosas ...
  #1 (permalink)  
Antiguo 19/05/2009, 08:54
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa Validar applet para acceder a la maquina cliente

Hola a todos..

TEngo entendido que para que tu applet java pueda acceder a archivos del cliente o manipular puertos de impresora u otras cosas dicho applet hay que validarlo y certificarlo.. alguien seria tan amable de explicarme como hacer eso???? donde ??? sun ?? o en que direccion si tiene costo o es gratis ... Tambien como complemente a este tema queria consultarles algunos ejemplo para manipular un applet desde javascript.. o por lo menos lanzar algun evento. (pasar datos desde javascript al applet y que el applet lo imprima por ejem... ) Bueno gracias a todos..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #2 (permalink)  
Antiguo 19/05/2009, 12:25
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Validar applet para acceder a la maquina cliente

Hola:

Aquí tienes un ejemplo de cómo firmar digitalmente el applet. En el ejemplo, tú mismo te creas la firma digital y luego firmas el Applet. Como los navegadores no te reconocen como alguien que pueda emitir firmas oficiales, el navegador mostrará al usuario un aviso para que diga si confía o no en tí. Si el usuario indica que sí, tu applet tendrá acceso a los ficheros e impresora, si el usuario dice que no, tu applet no tendrá acceso. Si no quieres que salga esta pregunta, necesitas conseguir una firma oficial emitida por alguna autoridad que reconozca el navegador y esas firmas cuestan y se renuevan cada año. Si buscas en el navegador, verás las autoridades que reconoce (en firefox, por ejemplo, están en herramientas->opciones->avanzado->cifrado->ver certificados->autoridades.

Aquí tienes un ejemplo de cómo llamar desde javascript a métodos de un Applet.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 19/05/2009, 13:59
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Validar applet para acceder a la maquina cliente

SEgun lo que muestro en la parte inferior lo que deseo hacer es tener parametros para el aplet y al presionar un boton (input html) ejecutar una funcion del applet y actualizar la informacion con los nuevos datos que recupero desde campos text que estan en la misma pagina html... en realidad mi pregunta es "Como actualizar los parametros que le paso al applet"

Saludos..

Mi codigo JAVA

Código:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.print.PrinterJob;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.SimpleDoc;
import javax.swing.JApplet;
import javax.swing.JLabel;

public class AppletPasarParametros extends JApplet {
	private String descripcion;
	private String codigo;
	private int cantidad;
	private int numEtq;
	private String temp;
	private JLabel jdescripcion = new JLabel("descripcion");

	
	private static final long serialVersionUID = 1L;

	public AppletPasarParametros() {
		super();
	}

	public void init() {
		this.setSize(500, 500);
		add(jdescripcion);
		leerParametros();
		mostrarValores();
	}

	public void leerParametros() {
		try {
			descripcion = getParameter("web");
			if (descripcion == null) {
				descripcion = "Sin parametros";
			}
		} catch (Exception e) {
			descripcion = "Sin parametros";
		}
		try {
			codigo = getParameter("url");
			if (codigo == null) {
				codigo = "Sin parametros";
			}
		} catch (Exception e) {
			codigo = "Sin parametros";
		}
		try {
			temp = getParameter("can");
			if (temp == null) {
				cantidad = 0;
			} else {
				cantidad = Integer.parseInt(temp);
			}
		} catch (Exception e) {
			cantidad = 0;
		}
		try {
			temp = getParameter("lineas");
			if (temp == null) {
				numEtq = 0;
			} else {
				numEtq = Integer.parseInt(temp);
			}
		} catch (Exception e) {
			numEtq = 0;
		}
	}
	public void mostrarValores()
	{
		jdescripcion.setText(descripcion+"--"+codigo+"--"+cantidad+"--"+numEtq);

	}

//	public void paint(Graphics g) {
//		g.drawString(cantidad + "", 10, 20);
//		g.drawString(codigo, 10, 40);
//		g.drawString(descripcion, 10, 60);
//		g.drawString(numEtq + "", 10, 80);
//	}

	public void imprimir() {
		leerParametros();
		update(null);
	}

	public void printCodeBarZebra() {
		try {
			PrinterJob imp = PrinterJob.getPrinterJob();
			imp.printDialog();
			imp.getPrintService();

			DocPrintJob job = imp.getPrintService().createPrintJob();

			// DocPrintJob job = psZebra.createPrintJob();

			String cb = "";

			int cont = 0;
			int ancho = 0;
			int alto = 0;
			int margen = 24;
			if (numEtq == 3) {
				ancho = 240;
				alto = 176;
			} else if (numEtq == 2) {
				ancho = 400;
				alto = 240;
			} else {
				ancho = 800;
				alto = 320;
			}

			// / ancho de cada etiqueta 240
			// espacio entre etiqueta 24

			// cb += "D5\nq800\nQ" + alto + "," + margen + "\nN\n";
			cb += "D15\nq800\nQ" + alto + "," + margen + "\nN\n";
			int width = 24;
			for (int i = 0; i < numEtq && cont < cantidad; i++, cont++) {
				String[] aux = getNombreDivide(getParameter("descripcion") == null ? ""
						: getParameter("descripcion"));

				cb += "A" + width + ",10,0,2,1,1,N,\"" + aux[0] + "\"\n" + "A"
						+ width + ",25,0,2,1,1,N,\"" + aux[1] + "\"\n" + "B"
						+ width + ",40,0,1B,2,2,75,B,\""
						+ getParameter("codigo") + "\"\n";
				width += ancho + margen;
				// this.getGraphics().drawString(descripcion, 50, (25*(i+1)));
				// g.drawString(descripcion, 50, (25*(i+1)));
			}
			cb += "P1\n";

			// System.out.println("CODE BAR \n" + cb);
			byte[] by = cb.getBytes();
			DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
			Doc doc = new SimpleDoc(by, flavor, null);

			job.print(doc, null);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private String[] getNombreDivide(String nombre) {
		// 18
		String[] nmbs = new String[2];
		if (nombre.length() > 18)
			nmbs[0] = nombre.substring(0, 18);
		else {
			nmbs[0] = nombre.substring(0, nombre.length());
			nmbs[1] = "";
		}

		if (nombre.length() > 36)
			nmbs[1] = nombre.substring(18, 36);
		else if (nombre.length() > 18)
			nmbs[1] = nombre.substring(18, nombre.length());

		return nmbs;
	}
}
Mi codigo HTML

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Pasar parametros a un applet</title>
<script type="text/javascript">
         function imprimir()
         {
            var applet = document.getElementById('printA');
            document.getElementById('web').value = document.getElementById('descripcion').value;
            document.getElementById('url').value = document.getElementById('codigo').value;
            document.getElementById('can').value = document.getElementById('cantidad').value;
            document.getElementById('lineas').value = document.getElementById('columnas').value;
            applet.imprimir();
         }
</script> 
</head>
<body>
Descripcion: <input type="text" id="descripcion"><br>
Codigo: <input type="text" id="codigo"><br>
Cantidad: <input type="text" id="cantidad"><br>
Columnas: <input type="text" id="columnas"><br>
<input type="button" value="Imprimir" onclick="javascript: imprimir();"><br>			
<object
    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,5"
    WIDTH = "200" HEIGHT = "150" >
    <PARAM NAME = CODE VALUE = "AppletPasarParametros.class" >
    <param name = "type" value = "application/x-java-applet;version=1.5">
    <param name = "scriptable" value = "false">
    <PARAM NAME = "web" id="web" VALUE="web">
    <PARAM NAME = "url" id="url" VALUE="url">
    <PARAM NAME = "can" id="can" VALUE="1">
    <PARAM NAME = "lineas" id="lineas" VALUE="3">    
</object>
<hr>
</body>
</html>
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #4 (permalink)  
Antiguo 19/05/2009, 14:49
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Validar applet para acceder a la maquina cliente

Hola:

Ponle al applet un método setParametros() y llámalo desde javascript siguiendo lo del enlace que te puse.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 19/05/2009, 14:56
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Validar applet para acceder a la maquina cliente

Gracias por tu respuesta el detalle es que no me actualiza.. mira esto es lo que estoy haciendo..

El siguiente metodo lee los parametros.. que tiene el applet

Código:
public void leerParametros() {
		try {
			descripcion = getParameter("web");
			if (descripcion == null) {
				descripcion = "Sin parametros";
			}
		} catch (Exception e) {
			descripcion = "Sin parametros";
		}
		try {
			codigo = getParameter("url");
			if (codigo == null) {
				codigo = "Sin parametros";
			}
		} catch (Exception e) {
			codigo = "Sin parametros";
		}
		try {
			temp = getParameter("can");
			if (temp == null) {
				cantidad = 0;
			} else {
				cantidad = Integer.parseInt(temp);
			}
		} catch (Exception e) {
			cantidad = 0;
		}
		try {
			temp = getParameter("lineas");
			if (temp == null) {
				numEtq = 0;
			} else {
				numEtq = Integer.parseInt(temp);
			}
		} catch (Exception e) {
			numEtq = 0;
		}
	}
y con este metodo.. yo lo muestro en mi applet como veras solo lo muestro en un label..

Código:
	public void mostrarValores() {
		jdescripcion.setText(descripcion + "--" + codigo + "--" + cantidad
				+ "--" + numEtq);

	}
ahora el detalle es lo siguiente tengo una funcion javascript.. que tiene lo siguiente..

Código:
function imprimir()
         {
            var applet = document.getElementById('printA');
            document.getElementById('web').value = document.getElementById('descripcion').value;
            document.getElementById('url').value = document.getElementById('codigo').value;
            document.getElementById('can').value = document.getElementById('cantidad').value;
            document.getElementById('lineas').value = document.getElementById('columnas').value;
            applet.imprimir();
         }
ahi estoy cambiando los valores para los parametros.. segun lo que coloquen en la caja de texto imput que tengo para las cuatro variables.. y luego llamo a la funcion imprimir del aplet que esta como sigue..

Código:
public void imprimir() {
		leerParametros();
		jdescripcion.setText("nuevo" + descripcion + "--" + codigo + "--"
				+ cantidad + "--" + numEtq);
	}
y me muestra los mismos valores que estan definidos al principio solo aumenta esa cadena nuevo que lo puse como prueba o sea el leerparametros no esta actualizando los valores.. que podria ser por favor una pequeña ayuda ..

Muchas gracias y saludos..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #6 (permalink)  
Antiguo 19/05/2009, 17:34
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Validar applet para acceder a la maquina cliente

Ya solucione pero de otra manera sin usar parametros.. lo comparto por si alguien necesita esto

Código:
function text()
         {
         	var applet = document.getElementById('printA');
            applet.texto(document.getElementById('descripcion').value, document.getElementById('codigo').value, document.getElementById('cantidad').value, document.getElementById('columnas').value);
         }
ese es mi funcion javascript estoy llamando a la funcion texto en mi applet pasandole parametros directo de ahi..

y todo funciono bien ya no necesito parametros definidos para el applet.. asi que todo esta bien..
Gracias por su ayuda.. y ahora yo creo que firmare yo nomas.. porque lo de veri sign debe ser un poco caro.. hasta luego chau chau..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
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 00:03.