Como decia Arquimedes: "EUREKA lo encontre".
Halle el código fuente del servlet que utilice como modelo de desarrollo para WML y hace exactamente lo que necesitas.
Pero antes dos puntos: 1.- Es un servlet no exactamente un JSP, pero es lo mismo. La diferencia entre JSP y Servlet es que el primero permite separar mejor la capa de presentación de la capa de lógica de negocio. Para un estudio más profundo del tema te recomiendo la página www.programacion.com, en la sección de Java hay muchísima información sobre estas dos caras de la misma tecnología.
2.- El JSP y/o servlet genera un flujo (stream) para el protocolo HTTP y necesitas un Gateway WAP (servidor intermedio) para trasnformar el HTTP a WML.
El código es el siguiente:
/* Servlet que genera, de forma compacta un card WML
* con elemento de entrada de datos (solicitando un
* nombre) como parte del procesamiento de una
* solicitud GET, y que devuelve como respuesta
* de la solicitud POST del dato, otro card WML en el
* que se indica el nombre obtenido en el servidor.
*
* Este tipo de codificación, en la que un mismo servelt
* genera el elemento de entrada de datos como respuesta
* a una solicitud HTTP de tipo GET y genera asimismo la
* respuesta a los datos enviados desde el anterior elemento,
* usando esta vez una solicitud POST, marca la pauta de lo
* que debería ser un modelo de desarrollo de servlet
* para la generación dinámica de contenidos WAP.
*/
import javax.servlet.http.*;
import javax.servlet.ServletException;
import java.io.PrintWriter;
import java.io.IOException;
public class PostServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// Especificación de tipo MIME
response.setContentType("text/vnd.wap.wml");
// Obtención de manejar out para el flujo de salida
PrintWriter out = response.getWriter();
out.println("<wml>");
out.println("<card>");
out.println("<do='accept'>");
out.println("<go href = '
http://mi_servidor_wap/servlet/ejemplo' method='POST'");
out.println("</do>");
out.println("<p>");
out.println("Introduzca su nombre:<br>");
out.println("<input name = 'nombre'>");
out.println("<p>");
out.println("</card>");
out.println("</wml>");
// Se cierra el flujo de salida
out.close();
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
// Tipo MIME de la respuesta
response.setContentType("text/vnd.wap.wml");
// Obtención de datos del objeto request
String nombre = request.getParameter("nombre");
// Obtención manejador de flujo de salida
PrintWriter out = response.getWriter();
out.println("<wml>");
out.println("<card id='carta1' title = 'Ejemplo1'>");
out.println("<p>Respuesta de servlet:");
out.println("Hola" + nombre);
out.println("<p></card>");
out.println("</wml>");
// Se cierra el flujo de salida
out.close();
}
}
POSDATA: Lamentablemente este medio no permite la transferencia de archivos.
Si tienes algún problema con el código o cualquier otra duda no dejes de avisarme (recuerda que un punto y coma mal ubicado hecha a perder todo).
Para una comunicación más directa mi e-mail es:
[email protected] y si estas en Venezuela mi teléfono celular es 0414-2258567.
Suerte y mucho ÉXITO