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

paso de resultados de servlet a JSP?

Estas en el tema de paso de resultados de servlet a JSP? en el foro de Java en Foros del Web. Tengo un servlet que recoge datos de un formulario HTML por metodo get, este servlet realiza una consulta a la base de datos, generandose un ...
  #1 (permalink)  
Antiguo 15/01/2005, 12:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Pregunta paso de resultados de servlet a JSP?

Tengo un servlet que recoge datos de un formulario HTML por metodo get, este servlet realiza una consulta a la base de datos, generandose un resultset con los resultados de dicha consulta. Mi pregunta es, ¿de que forma paso esos resultados a un JSP para mostrar los datos? No se si se pasa el resultset entero y se procesa en JSP, si se hace mediante el uso d este codigo:

request.setAttribute("resul",resultado);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/busqueda.jsp");
dispatcher.forward(request, response);

o que formas existen de pasar esos resultados para ser mostrados en la pagina JSP.

Os agradeceria me pudieriais aclarar un poco el tema
Gracias
  #2 (permalink)  
Antiguo 17/01/2005, 02:26
 
Fecha de Ingreso: enero-2005
Mensajes: 139
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola,

Se me ocurre que puedes generar tu respuesta HTML con los datos del resultset que quieres mostrar, usando el objeto response que recibes en el servlet.

Lo que tienes que hacer es mediante getWriter del objeto response, obtener el flujo de salida para poder escribir mediante métodos printXX.

Espero que esto te sirva para algo.

Saludos.
  #3 (permalink)  
Antiguo 21/01/2005, 06:38
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Me respondo a mi mismo... asi lo resolvi:

Un formulario HTML manda datos a un servlet (con action en el formulario)
El servlet recoge los datos de la peticion y llama a una clase para realizar la consulta a la base de datos esta clase devuelve un ArrayList al servlet con todos los resultados obtenidos
A continuacion pasa este ArrayList al JSP mediante un atributo en request y un forward a dicho JSP
El JSP recoge la coleccion de datos Collection resultado=(Collection)request.getAttribute("resul" ) y muestra en una tabla recorriendo el arrayList asi:
for (Iterator iterator = resultado.iterator(); iterator.hasNext(); ) {
BeanDatos Datos = (BeanDatos) iterator.next ();

Y listo, ya tengo los datos mostrados en JSP, y realizando las operaciones en el servlet... si no estoy equivocado, asi cumplo el estandar MVC... si no es asi, pos rectificarme ;)...

PD: no puedo usar las librerias tag auxiliares como LAYOUT, porq es para una practica universitaria, pero su uso hace mas facil el mostrar los datos...

Muchas gracias a todos, espero q os sirva, como a mi
Un saludito
  #4 (permalink)  
Antiguo 23/01/2005, 06:03
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunto:

Es que estoy empezando y aún no me aclaro mucho. Tengo una clase en java (.class) y la quiero hacer correr como servlet, como lo puedo hacer? La tengo que llamar desde un .jsp o puedo correr la clase sin más? O un servlet no tiene nada que ver con .jsp?

Si alguien tiene algún tipo de información o me puede explicar como va todo esto, agradeceré que la postee aquí. Muchas gracias.
  #5 (permalink)  
Antiguo 23/01/2005, 09:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola MiguelCs, a ver si te ayuda esto...

Un servlet, no es mas que codigo java con HTML incrustado (generado con salidas out.println()), mientras que un JSP es codigo HTML con java incrustado (<%codigo java%>)... Como puedes ver, realmente es lo mismo...tan solo cambia la forma de escribir el codigo..
Pero segun se ha estandarizado mediante el modelo MVC (Modelo - Vista - Controlador), la vista debe ser realizada mediante JSP, con el minimo codigo java necesario incrustado en él, mientras que las operaciones las realizara un servlet (sin salidas println). Muchas veces no se sigue este estandar..es solo una guia, para hacerlo todos igual, y no tener mezclas "raras".

Con respecto a correr una clase java como servlets, precisamente un servlet, es .java, ya que es codigo java. No es necesario que la llames desde un JSP para que funcione, el uso simultaneo de JSP y servlets es para seguir el estandar que t comento. Pero puedes correr un servlets sin JSP, o un JSP sin servlet...

Espero haberme explicado y q t sirva d ayuda... cualkier cosa me dices.. q pa eso estamos ;)

Un saludito
  #6 (permalink)  
Antiguo 23/01/2005, 11:08
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola Dannyel1979,

Te has explicado muy bien, tengo claro lo que es un servlet y lo que es un .jsp. Lo que me dices a continuación es que puedo tratar mi .java como si fuera una página normal y corriente, del mismo modo que hago: "http://localhost/.../index.php" podría hacer "http://localhost/.../servlet.java"? Cuando compilo un .java me genera un .class, pero se tiene que trabajar con el .java. Según lo que entiendo.

Muchas gracias por tu ayuda!
  #7 (permalink)  
Antiguo 23/01/2005, 11:28
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola miguelcs... a tu pregunta... no exactamente... no me explique del todo bien... debes compilar el .java si, y realmente lo que se usa es el .class, pero los servlets no se referencian tal cual el php o jsp... un servlet necesita estar en un directorio concreto y hacerle una referencia mediante el fichero web.xml, es decir... yo uso tomcat,no se si para el resto de servidores es igual, pero ahi te digo, a ver si te sirve d ayuda, la estructura de directorios es la siguiente:

c:\tomcat\webapps\MIAPLICACION\
Ahi se colocan los jsp, html, imagenes, css....

Sin embargo el servlet (el archivo .class, como bien decias) debe ser colocado en un directorio concreto colgando del anterior:

c:\tomcat\webapps\MIAPLICACION\WEB-INF\classes\

y a continuacion debes hacerle una referencia en el archivo web.xml, este archivo se coloca en el directorio c:\tomcat\webapps\MIAPLICACION\WEB-INF\
y su contenido debe ser el siguiente:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<!-- General description of your web application -->

<display-name>NOMBRE</display-name>
<description>
DESCRIPCION
</description>

<servlet>
<servlet-name>NOMBRE DE TU SERVLET</servlet-name>
<description>
DESCRIPCION DEL SERVLET
</description>
<servlet-class>NOMBRE DEL ARCHIVO.CLASS (SIN PONER .CLASS)</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>NOMBRE DE TU SERVLET</servlet-name>
<url-pattern>/servlet/NOMBRE DEL ARCHIVO.CLASS (SIN PONER .CLASS)</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>1</session-timeout> <!-- 30 minutes -->
</session-config>

</web-app>

ahi sustituyes lo que esta en mayusculas por tu servlet.. y para hacerlo correr... debes llamar:
"http://localhost:8080/MIAPLICACION/servlet/NOMBRE DE TU SERVLET"

espero q te sirva, si necesitas ayuda en algo, no dudes en decirmelo
taorita
  #8 (permalink)  
Antiguo 23/01/2005, 12:55
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Entonces la cosa queda así (corrigeme si me equivoco):

servlet: tcpServer.java
clase: tcpServer.class <= tcpServer.java compilado
directorio: c:\NetBeans3.6\jakarta-tomcat-5.0.19\webapps\Carpeta\

pongo tcpServer.class en:
c:\NetBeans3.6\jakarta-tomcat-5.0.19\webapps\Carpeta\WEB-INF\classes\

el archivo web.xml quedará así:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<!-- General description of your web application -->

<display-name>tcpServer</display-name>
<description>
Servidor
</description>

<servlet>
<servlet-name>tcpServer.java</servlet-name>
<description>
codigo de la parte del servidor
</description>
<servlet-class>tcpServer</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>tcpServer.java</servlet-name>
##Aunque yo no haya creado la carpeta servlet?##
<url-pattern>/servlet/tcpServer</url-pattern> 
</servlet-mapping>

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>1</session-timeout> <!-- 30 minutes -->
</session-config>

</web-app>
Y para ejecutarlo:
http://localhost:8080/Carpeta/servlet/tcpServer.java

Me debo haber confundido porque me has dicho que no llamabamos un .java así tal cual... jejeje
la carpeta servlet también la tengo que crear?

(Creo que nos estamos acercando... Muchas gracias de verdad)
  #9 (permalink)  
Antiguo 24/01/2005, 04:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola d nuevo... a ver... va bien encaminada la cosa :P
Pero un par d matices...

<servlet-name>tcpServer.java</servlet-name>
Eso es el nombre que tu le quieras poner al servlet, solo vale para usarlo dentro del propio web.xml... asi le podrias llamar por ejemplo:

<servlet-name>tcp</servlet-name>

Y tb decirte.. q lo que va en <url-pattern>/servlet/tcpServer</url-pattern>
es la forma de llamarlo... es decir... con ese q pusiste la llamada seria:

http://localhost:8080/Carpeta/servlet/tcpServer

para q entiendas... si hubieses puesto esto otro:
<url-pattern>/servlet/tcpSer</url-pattern>
la llamada seria: http://localhost:8080/Carpeta/servlet/tcpSer

aunque creo que tb es posible llamarlo con el nombre declarado en <servlet-name> o con el propio nombre de la clase en <servlet-class>, pero ahi ya no me mojo, yo siempre hago de la siguiente forma:


<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>Proyecto tcp</display-name>
<description>
descripcion del proyecto tcp
</description>

<servlet>
<servlet-name>tcp</servlet-name>
<description>
Servlet que hace d tcpServer
</description>
<servlet-class>tcpServer</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>tcp</servlet-name>
<url-pattern>/servlet/tcpServ</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>1</session-timeout> <!-- 30 minutes -->
</session-config>

</web-app>

He cambiado el servlet-name, para q veas q puede ser distinto de <servlet-class> y de url-pattern... lo unico que debe ser fijo es <servlet-class> con el nombre del archivo .class
El mapping lo unico que hace segun tengo entendido es proporcionar la direccion de llamada,por lo que le puedes poner la que tu quieras

Espero q t sirva d ayuda, y no dudes en preguntar si necesitas algo
  #10 (permalink)  
Antiguo 24/01/2005, 04:18
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
ah se me olvido responderte lo de la carpeta servlet... no tienes que crearla no, <url-pattern> es el acceso al servidor, direccion virtual, no es local, o sea.. q la carpeta servlet no tiene xk existir en tu estructura d directorios local, el lo mapea en la virtual solito ;)
  #11 (permalink)  
Antiguo 24/01/2005, 13:51
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
He seguido tus indicaciones pero creo que el error está en que no me coje:
c:\NetBeans3.6\jakarta-tomcat-5.0.19\webapps
como localhost. Lo he estado mirando y estoy seguro que tiene algo que ver con CLASSPATH o CATALINAHOME o nose qué exactamente.
Sabes algo de esto?

De todas formas un aplauso por todas las explicaciones
  #12 (permalink)  
Antiguo 25/01/2005, 04:03
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
CLASSPATH y CATALINAHOME

Hola miguelcs... necesitaria saber si usas windows o linux ya que la configuracion de las variables es distinta... pero bueno, aqui t pongo como se hace para ambos:

WINDOWS (en la ventana d msdos o ejecutando):

set CATALINA_HOME=e:\tomcat
set JAVA_HOME=e:\j2sdk1.4.2_06
set PATH=%JAVA_HOME%\bin;%PATH%
set PATH=%CATALINA_HOME%\bin;%PATH%

set CLASSPATH=DIRECTORIO DONDE ESTAN TUS CLASES;DIRECTORIO DE LOS JAR A USAR

LINUX, aqui depende d si es bash o tsch... para tsch es:

setenv JAVA_HOME=/usr/local/j2ee/jdk
setenv PATH=$JAVA_HOME/bin:$PATH
setenv CATALINA_HOME=$HOME/tomcat/jakarta-tomcat-4.1.12-LE-jdk14
setenv PATH=$CATALINA_HOME/bin:$PATH

CLASSPATH=$HOME/tomcat/common/lib/servlet.jar:$HOME/tomcat/common/lib/connector.jar:/tomcat/webapps/practica10/WEB-INF/classes
export CLASSPATH


sustituyes los directorios q aki puse por los tuyos de java y tomcat.. y los de classpath, por los d tus jar a usar y tus clases...
Dime si t sirvio, o si usas bash, y t miro como se hace q es parecido, pero ahora mismo no me acuerdo...
Si quieres mas informacion sobre CLASSPATH, mirate esto, viene muy completo:
http://www.geocities.com/chuidiang/j...classpath.html

Espero q t sirva.. un saludo
  #13 (permalink)  
Antiguo 25/01/2005, 14:09
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Buenas Dannyel1979,

Referente a tu pregunta: trabajo bajo windows.
Estas variables las tengo que editar en un archivo concreto o tengo que lanzar la consola y hacer el set variable? He probado esto ultimo y me sale un mensaje desde consola que dice lo siguiente: Variable de entorno no definida.

  #14 (permalink)  
Antiguo 25/01/2005, 14:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola miguel, yo las declaro en la consola de msdos (Boton inicio de windows->ejecutar->cmd)...y una vez en la consola, copio y pego esto, tal que asi:

set CATALINA_HOME=e:\tomcat
set JAVA_HOME=e:\j2sdk1.4.2_06
set PATH=%JAVA_HOME%\bin;%PATH%
set PATH=%CATALINA_HOME%\bin;%PATH%

set CLASSPATH=DIRECTORIO DONDE ESTAN TUS CLASES;DIRECTORIO DE LOS JAR A USAR

Eso q dices de variable de entorno no definida, me pasa a mi al poner solo set variable, pero poniendo set variable=.. ya la admite... No se que pueda ser lo que ocurra, ya que yo trabajo bajo windows aqui en casa tb, y asi me funciona perfectamente... si me entero d algo t digo... avisame si consigues hacer funcionar.. o a ver si alguien sabe... miraste la web q puse? mirala, ahi me aclaro bastante a mi d como configurar
  #15 (permalink)  
Antiguo 29/01/2005, 17:24
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Dannyel1979 lo he conseguido!!

He estado estos dias muy liado pero hoy me he puesto de nuevo con el tema y he conseguido hacer correr el servidor (http://localhost:8080/). Que peso me he sacado de encima, estaba ya un poco frustrado...
Bueno ahora solo falta que funcione la aplicacion.

Te debo una!
  #16 (permalink)  
Antiguo 30/01/2005, 13:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Me alegro miguel :P, de nada hombre... si tenes alguna cosa, ponla aki... y veremos si podemos ayudar..q yo tp es q este muy puesto, pero ahi comparto lo poco q se... ;)
  #17 (permalink)  
Antiguo 13/02/2005, 13:38
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Ei Dannyel1979 que tal, no se si andarás por aquí después de tanto tiempo...

Tengo malas noticias. Desde lo del servidor no ha habido mejoras

Estoy bastante desmotivado con el tema, por eso casi ya ni me pongo con las clases. Las clases que creo con NetBeans no hay manera de ponerlas en marcha. El servidor es el Tomcat, no se si lo conoces, y el error que me da es algo así:

Estado HTTP 404 - /Project/servlet/helloexample

--------------------------------------------------------------------------------

type Informe de estado

mensaje /Project/servlet/helloexample

descripción El recurso requerido (/Project/servlet/helloexample) no está disponible.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.19

A ver si me puedes hechar un mano? (Si alguien sabe algo que postee).
  #18 (permalink)  
Antiguo 17/02/2005, 12:50
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 3 meses
Puntos: 0
Creo que ya se donde fallaba la cosa (aunque aún no he conseguido resultados). No definía la variable CLASSPATH y me he dado cuenta de que no existe en \common\lib el fichero servlet.jar, sinó que el que más se acerca es un llamado servlet-api.jar. He intentado usar este pero me sigue dando el mismo error.

Seguiré probando.
  #19 (permalink)  
Antiguo 23/02/2005, 14:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
PUEDES MANDAR EL CODIGO Plis
  #20 (permalink)  
Antiguo 03/08/2007, 22:07
 
Fecha de Ingreso: diciembre-2002
Mensajes: 128
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: paso de resultados de servlet a JSP?

Hola, llege aqui buscando en google una solucion para el mismo problema q tiene miguel, instale netbeans 5.5.1 sobre windows, ejecuto los ejemplos y ningun problema, pero ejecuto codigo creado por mi y le doy run y.....


Estado HTTP 404 - /Opinion/

type Informe de estado

mensaje /Opinion/

descripción El recurso requerido (/Opinion/) no está disponible.
Apache Tomcat/5.5.17



No se que puede ser, por favor, ayuda!!
  #21 (permalink)  
Antiguo 09/08/2007, 11:36
Avatar de pancho_k  
Fecha de Ingreso: julio-2007
Mensajes: 32
Antigüedad: 16 años, 9 meses
Puntos: 4
Re: paso de resultados de servlet a JSP?

Hola foro que tal, necesito ayuda con unas dudas acerca de servlets y pa, explicar mas o menos mi problema tengo lo siguiente....

OK estoy trabajando con tomcat 5.0.19 (este es mi servidor web en fedora 7) y el cual hace referencia a una carpeta (esta configurado para que busque proyectos de trabajo en la carpeta) llamada “curso” (curso se encuentra en /root/), dentro de curso se crearon las carpetas “IMG” y “WEB-INF” y dentro de “WEB-INF” estan las carpetas “classes” y “lib”

El archivo izquierda.jsp se encuentra ubicado en la carpeta “curso” y este se encarga de ejecutar el servlet “jasper.java” que se encuentra en la carpeta “classes”, dentro del codigo de jasper.java, se tiene que leer un archivo externo (tres.jrxml) el cual esta ubicado en la carpeta “curso” y en la carpeta “classes” (pa mas seguro).

Pero cuando se ejecuta el servlet (jasper.java), muestra un error “Exception can’t find the file or directory /curso/tres,jrxml”

Haciendo los respectivos cambios, jasper.java funciona perfectamente desde linea de comandos y basta con que ponga el archivo tres,jrxml en el mismo directorio de jasper.java, oviamente, cuando se hacen las modificaciones a jasper.java para que funcione desde linea de comandos, no se utiliza el archivo izquierda.jsp.

Mis dudas son:

• Tengo que pasar la ruta completa del archivo tres.jrxml? (cosa que ya intente y no funciono)

• Existe alguna regla de seguridad que deba cambiar al tomcat para que jasper.java pueda llamar al archivo externo tres.jrxml?

• Existe alguna rregla de seguridad del sistema que deba cambiar?

• Cual es?

• Para llamar a tres.jrxml desde el servlet utilizo request.getContextPath()+"/tres.jrxml";

• Debo cambiarlo?
• Que debo poner?
• Que me sugieren?

• La ubicación de mis archivos es correcta?


De antemano muchas gracias, este es el codigo de los archivos que utilizo.


==========izquierda.jsp=========================== ===

<html>
<head>
<%@page language="java" import="java.io.*"%>
</head>
<BODY>

<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; BUSCADOR</h3>

<form action="<%=request.getContextPath()%>/servlet/jasper" method="post">
<table>
<tr>
<td>Localidad:</td>
<td>
<select name="localidad">
<option value="Zacatepec">Zacatepec.
<option value="Jojutla">Jojutla.
<option value="Cuernavaca">Cuernavaca.
<option value="Yautepec">Yautepec.
</select>
</td>
</tr>

<tr>
<td>Especialidad:</td>
<td>
<select name="Esp">
<option value="Informatica">Informatica.
<option value="Sistemas">Sistemas.
<option value="Industrial">Industrial.
<option value="Civil">Civil.
<option value="Bioquimica">Bioquimica.
</select>
</td>
</tr>

<tr>
<td>Promedio:</td>
<td>
<input type="text" name="promedio" id="prom" size="11">
</td>
</tr>

<tr>
<td colspan="2" align="center"><input type="radio" name="sexo" value="masculino">Masculino</td>
</tr>

<tr>
<td colspan="2" align="center"><input type="radio" name="sexo" value="femenino">Femenino</td>
</tr>

<tr>
<td colspan="2" align="center"><input type="radio" name="sexo" value="ambos" checked>Ambos</td>
</tr>


<tr>
<td colspan="2" align="center"><input type="submit" name="guardar" value="BUSCAR"></td>
</tr>


</table>
</form>
</BODY>

</html>
=======fin izquierda.jsp=======================


=====jasper.java================================== ====
import javax.servlet.http.*;
import java.io.*;

//import java.sql.Connection;
//import java.sql.DriverManager;

import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperCompileManager;

import javax.servlet.ServletException;

public class jasper extends HttpServlet {

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {

response.setContentType("text/html");
PrintWriter web = response.getWriter();

try{

String loc=request.getParameter("localidad");
String esp=request.getParameter("Esp");
String prom=request.getParameter("promedio");
String gen=request.getParameter("sexo");

web.println(loc);
web.println(esp);
web.println(prom);
web.println(gen);


Map parameter = new HashMap();


web.println("Iniciando...");
/*Se manda traer el archivo tres.jrxml y se crea el archivo “tres.jasper” */
JasperCompileManager.compileReportToFile(request.g etContextPath()+"/tres.jrxml");
web.println("Se ha compilado el reporte...");


web.println("llenando el reporte..."+parameter);
/*Se manda a traer el archivo tres.jasper y se crea tres.jrprint*/
JasperFillManager.fillReportToFile(request.getCont extPath()+"/tres.jasper", parameter,new JREmptyDataSource());
web.println("Reporte lleno.");

web.println("Exportando .............");
/*Se manda a traer el erchivo tres.jrprint y se exporta a HTML*/ JasperExportManager.exportReportToHtmlFile(request .getContextPath()+"/tres.jrprint",request.getContextPath()+"derecha.ht ml");

//web.println("Se ha creado el archivo en HTML.......Fin del prosedimiento.");



}catch(Exception e){
web.println("Ocurrio un error en main:"+e);

}


}


}
==============fin jasper.java===========================


=======tres.jrxml================================= =======

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"

"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="tres">

<style name="Arial_Bold" isDefault="false" fontName="Arial" fontSize="12" isBold="true" />
<style name="centeredText" hAlign="Left" vAlign="Middle"/>
<style name="PanchoStyle" hAlign="Center" vAlign="Middle"/>
<style name="boldCentered" style="centeredText" isBold="true"/>
<style name="backgroundStyle" style="boldCentered" forecolor="lightGray" fontSize="90"/>

<parameter name="TITULO" class="java.lang.String" isForPrompting="false"/>
<!--
<background>
<band height="782">
<staticText>
<reportElement x="-100" y="-50" width="800" height="782" style="backgroundStyle" mode="Transparent"/>
<textElement rotation="None"/>
<text>
<![CDATA[PANCHO ]]>
</text>
</staticText>
</band>
</background>

-->
<title>
<band height="24" isSplitAllowed="true">
<textField>
<reportElement x="0" y="4" width="550" height="20" mode="Opaque" forecolor="#ffffff" backcolor="#333333" style="Arial_Bold" positionType="FixRelativeToTop" />
<textElement textAlignment="Center" />
<textFieldExpression class="java.lang.String">
$P{TITULO}
</textFieldExpression>
</textField>

<!-- <textField>
<reportElement x="0" y="50" width="200" height="20"/>
<textFieldExpression class="java.util.Date"><![CDATA[$P{FECHA} ]]> </textFieldExpression>
</textField>
-->
</band>
</title>

<detail>
<band height="600">
<staticText>
<reportElement x="0" y="100" width="555" height="20" mode="Transparent" style="PanchoStyle" />
<text><![CDATA[HOLA MUNDO ]]> </text>
</staticText>
<staticText>
<reportElement x="0" y="120" width="555" height="20" mode="Transparent" style="PanchoStyle" />
<text><![CDATA[TEXTO ESTATICO ]]> </text>

</staticText>
</band>
</detail>
</jasperReport>

=====fin tres.jrxml=======================================
  #22 (permalink)  
Antiguo 10/08/2007, 11:58
Avatar de pancho_k  
Fecha de Ingreso: julio-2007
Mensajes: 32
Antigüedad: 16 años, 9 meses
Puntos: 4
Re: paso de resultados de servlet a JSP?

Sludos de nuevo foro, ofresco disculpas, el codigo esta mal, ayer estuve checando algunas paginas y el codigo de jasper.java esta mal, creo que debe ser como el siguiente....


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;

public class jasper extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
ServletOutputStream servletOutputStream = response.getOutputStream();
InputStream reportStream = getServletConfig().getServletContext().getResource AsStream("/root/curso/tres.jasper");
try
{
JasperRunManager.runReportToPdfStream(reportStream ,
servletOutputStream, new HashMap(), new JREmptyDataSource());
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
catch (JRException e)
{
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toSt ring());
}
}
}

pero me dispara el siguiente error....


ava.lang.NullPointerException
java.io.ObjectInputStream$PeekInputStream.read(Obj ectInputStream.java:2140)
java.io.ObjectInputStream$PeekInputStream.readFull y(ObjectInputStream.java:2153)
java.io.ObjectInputStream$BlockDataInputStream.rea dShort(ObjectInputStream.java:2621)
java.io.ObjectInputStream.readStreamHeader(ObjectI nputStream.java:734)
java.io.ObjectInputStream.<init>(ObjectInputStream .java:251)
net.sf.jasperreports.engine.util.JRLoader.loadObje ct(JRLoader.java:191)
net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:580)
net.sf.jasperreports.engine.JasperRunManager.runRe portToPdfStream(JasperRunManager.java:368)
jasper.doGet(jasper.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet .java:743)
javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
org.apache.catalina.servlets.InvokerServlet.serveR equest(InvokerServlet.java:466)
org.apache.catalina.servlets.InvokerServlet.doGet( InvokerServlet.java:180)
javax.servlet.http.HttpServlet.service(HttpServlet .java:743)
javax.servlet.http.HttpServlet.service(HttpServlet .java:856)

si alguien tuviese la bondad de darme una orientacion del por que puede estar sucediendo lo expuesto se lo agradeceria mucho.
  #23 (permalink)  
Antiguo 04/09/2007, 14:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 17
Antigüedad: 16 años, 7 meses
Puntos: 0
Sonrisa Re: paso de resultados de servlet a JSP?

Hola que tal...

Tal vez me puedes explicar lo que significa el siguiente código? ya que no lo he encontrado.

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

Actualmente, yo no pongo esos tags en mi web.xml y no tengo ningún problema; pero ya que lo vi en tu respuesta quisiera saber su funcionalidad para ver si lo incluyo.

Gracias.
  #24 (permalink)  
Antiguo 16/03/2009, 11:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: paso de resultados de servlet a JSP?

Hola, tengo una duda muy parecida y no entiendo muy bien la solución. Es el mismo caso, mando datos de un formulario a un servlet, en el servlet hago una consulta a una base de datos, y quiero coger un dato del servlet y mostrarlo en una página jsp. El dato es un String. He intentado hacer lo siguiente:

<%
String confnif = (String)request.getAttribute("nif");
%>

donde nif es mi variable del servlet, y después:

<input type="text" name="nif" value="" readonly="readonly"
value="<%out.print(confnif); %>"/>

para que se me imprima el valor en una caja de texto, y que eL usuario no lo pueda cambiar. Pero no me funciona. ¿Podéis echarme un cable? Muchas gracias, un saludo
  #25 (permalink)  
Antiguo 17/03/2009, 09:30
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: paso de resultados de servlet a JSP?

request.getParameter.

Y es

<input type="text" name="nif" value="" readonly value="<%=confnif%>"/>

Saludos.

PD. Para nuevas preguntas, empieza un nuevo hilo.

Última edición por elAntonie; 18/03/2009 a las 05:25
  #26 (permalink)  
Antiguo 22/03/2009, 14:11
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: paso de resultados de servlet a JSP?

ok, ya funciona. Muchas gracias, un saludo
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 05:48.