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

Applet web POST a PHP

Estas en el tema de Applet web POST a PHP en el foro de Java en Foros del Web. hola, tengo un problema, estuve buscando en google y no encontre la solucion asique ahora pruebo en el foro a ver si me pueden ayudar. ...
  #1 (permalink)  
Antiguo 21/11/2010, 08:55
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Applet web POST a PHP

hola, tengo un problema, estuve buscando en google y no encontre la solucion asique ahora pruebo en el foro a ver si me pueden ayudar.
Quiero mandar datos POST hacia un archivo php en mi servidor (ej nombre=pepe&[email protected]&edad=23&ocupaci on=estudiante), de manera que pueda leer esas variables en el archivo php del modo $_POST['nombre'];, etc.
Asique invstigando en la web me encontre con el siguiente script:
Tengo lo siguiente:

En un archivo htm coloque el siguiente applet:
Código HTML:
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>

<applet code="PostXml.class" width=170 height=150>

</applet>
</BODY>
</HTML> 
Luego en PostXml.java tengo lo siguiente:

Código:
import java.net.*;
import java.io.*;

public class PostXml {

  public static void main(String[] args) {

try {
// Construct data BR> String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
String data = "&nombre=jorge";

// Send data
URL url = new URL("http://localhost:80/java/index.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) System.out.println(line);
wr.close();
rd.close();
} catch (Exception e) {
}
  }
}
El archivo index.php tiene lo siguiente
Código PHP:
<?php
echo $_POST['nombre'];
echo 
'preba';
?>
el java se compila sin erroes con "javac PostXml.java" y me crea el PostXml.class.
Hasta ahi todo muy lindo. Lo que quiero hacer es que el enviar los datos me escriba en la pantallita del applet lo que envie (es decir el nombre + prueba).
El problema es que al ejecutar el archivo htm, me devuelve el siguiente error:
Código:
Java Plug-in 1.6.0_21
Using JRE version 1.6.0_21-b07 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Jose
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


java.lang.reflect.InvocationTargetException
	at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: PostXml cannot be cast to java.applet.Applet
	at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception: java.lang.reflect.InvocationTargetException
Y no tengo ni idea como solucionarlo.
Ejecuandolo desde Netbeans como una applicacion java (es decir: File/New Project/Java/Java Application) me devuelve el nombre + prueba, es decir funciona correctamente, pero no es una Java Application lo que yo quiero hacer. Mi intencion es agregarlo en una pagina web y es en la pagina web donde me sale el error.
Alguien me podria ayudar.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 22/11/2010, 09:31
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Applet web POST a PHP

Hola:

Para q sea un applet tu clase tiene q heredar de la clase Applet.
Consulta este link y tendrás una mejor idea de como es la cosa:
http://sunsite.dcc.uchile.cl/java/docs/JavaTut/Cap2/holamapp.html

Ten en cuenta q cuando conviertas tu clase en un Applet tendrás q cambiar la estructura de tu programa. No hay método main(...) y la salida no la debes dar hacia System.out.

slds;

Nup_
  #3 (permalink)  
Antiguo 22/11/2010, 21:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Applet web POST a PHP

Muchas gracais Nup_ eres el mejor
Me has dejado muy contento, me ha funcionado.
Aca les dejo el codigo para quienes tengan el mismo problema, ya que no lo encontre en ningun

lado, quizas a partir de ahora aprezca este post en google y pueda alegrarle el dia a alguien mas.
Aqui va el htm:
Código HTML:
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>

<applet code="PostXml.class" width=170 height=150>

</applet>
</BODY>
</HTML> 

el class
Código:
import java.net.*;
import java.io.*;
import java.applet.*;
    import java.awt.*;

public class PostXml extends Applet {
String line[]=new String[100];
int i, n;

  public void init() {

try {
// Construct data BR> String data = URLEncoder.encode("key1", "UTF-8") + "=" + 

URLEncoder.encode("value1", "UTF-8");
String data = "&nombre=bruno";

// Send data
URL url = new URL("http://localhost/java/index.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

// Get the response
n=0;
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line[n] = rd.readLine()) != null){
n=n+1;
}

wr.close();
rd.close();
} catch (Exception e) {
}
 }


        public void paint(Graphics g){
      for (int i = 0; i < line.length; i++) {
         g.drawString(line[i],10,10+i*20);
      }
  }

}
el php
Código PHP:
<?php
$nom
=$_POST['nombre'];
$nom.='aaaaa-';



$filename="pep.txt";
    
$archivo=fopen($filename,'a') or die("can't open file");
    
fwrite($archivo$nom);
    
fclose ($archivo);
echo 
$nom;
?>

Etiquetas: applet, php, post
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 21:19.