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

¿como llamo a mi servlet desde JSP?

Estas en el tema de ¿como llamo a mi servlet desde JSP? en el foro de Java en Foros del Web. Hola amigos necesito una ayuda porfavor he creado mi servlet que hace la conexion de mi base de datos y todo me funciona bien, hace ...
  #1 (permalink)  
Antiguo 14/05/2004, 08:13
Avatar de elbueno45  
Fecha de Ingreso: noviembre-2003
Ubicación: lima
Mensajes: 97
Antigüedad: 20 años, 5 meses
Puntos: 0
Pregunta ¿como llamo a mi servlet desde JSP?

Hola amigos necesito una ayuda porfavor he creado mi servlet que hace la conexion de mi base de datos
y todo me funciona bien, hace un query pequeño y
todo.. pero los datos me lo muestra solo haciendo el
comando " java Select " en DOS..
quisiera saber que es lo que debo de cambiar o agregar en mi servlet para que el resultado se muestre en JSP, y que debo poner en el JSP para que
lo llame..
por favor necesito su ayuda..
aca les mando mi servlet para que me digan que puedo cambiar o agregar

---------------------------------------------------------------------------
import java.sql.*;

class Select {
public static void main (String argv[ ]) {

Connection con=null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String url="jdbc:jtds:sqlserver://10.5.7.16:1433/vantive;user=bcast;password=agentbc";
con = DriverManager.getConnection(url);

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery ("SELECT * FROM PAIS;");

while (rs.next( )) {
System.out.println(" " + rs.getString(1) + " " + rs.getString(2));
}
stmt.close( );
con.close( );
}
catch( Exception e) {
e.printStackTrace( );
}
}
}
---------------------------------------------------------------------------

Espero su ayuda lo necesito urgente..
se los agradecere un monton
gracias de antemano
y disculpen la molestia

atte.

Victor Vargas
__________________
elbueno45
  #2 (permalink)  
Antiguo 14/05/2004, 14:27
DAD
 
Fecha de Ingreso: abril-2004
Mensajes: 15
Antigüedad: 20 años
Puntos: 0
hola como estas..... en estos momentos no tengo un lugar donde crearte un pedazo de codigo para hacer lo que pedis, pero te doy unas pistas y seguro que te sale, sino avisame y el lunes te mando como lo hago yo (no lo hago ahora porque estoy en un cibercafe y no en mi maquina....).

Para llamar desde la JSP al Servlet, en la parte del formulario donde esta el boton submit, en la propiedad action pones:
<form mehod="POST" action="<nombre proyecto>/servlet/<package>.<nombre del servlet> >
con esto llama desde el jsp al servlet.

en el servlet, una ves que haces el query y se ejecuta y tenes los datos en el ResultSet, tenes que hacer un forward y con eso se va a la JSP que le pasas como parametro.
esto lo haces con el "RequestDispacher" (buscate algun ejemplo con esto que es muy facil), y antes de reslizar el forward al objeto request le agregas el resultset asi request.add.......("<nombre>",<nombre del resultset>).

y asi, pero esto ultimo es para que pruebes, lo que tenes que usar es una clase que se llama CachedRowSet, que es como un resultset "desconectado" y enviar este a la pagina JSP, ya que si envias el resultset tenes que cerrar la conexion en la JSP, y eso no es muy elegante que digamos.

Con las pistas que te di,y un poco de internet, seguro que lo sacas.......

ah para mostrar en la jsp lo haces como un JavaBean.
fiajte con todo esto y un poco de "google.com" y sale solo.
Asi lo hice yo....

Chau, espero haberte ayudado, si no sale, hacemelo saber que te mando un ejemplo cuando este en mi casa el lunes...

Saludos
__________________
:pensando: ~ Daniel ~ :pensando:
  #3 (permalink)  
Antiguo 15/05/2004, 10:51
Avatar de elbueno45  
Fecha de Ingreso: noviembre-2003
Ubicación: lima
Mensajes: 97
Antigüedad: 20 años, 5 meses
Puntos: 0
No me sale.. tengo problemas aun..
enviame tu ejemplo por favor.. te lo agradecere mucho..
del servlet, jsp, y como dices beans tambien creo no?.. bueno soy un poco nuevo en esto por eso necesito ayuda

muchas gracias por todo
atte
__________________
elbueno45
  #4 (permalink)  
Antiguo 17/05/2004, 07:18
DAD
 
Fecha de Ingreso: abril-2004
Mensajes: 15
Antigüedad: 20 años
Puntos: 0
hola, como va, como lo prometido es deuda, aca te mando un pedazo de codigo para que sigas como ejemplo. Puede tener algunos errores, porque no tengo un ejemplo aca en mano, pero esto seguro te va a servir como guia.

- La JSP inicial de busqueda algo asi (Busqueda.jsp):

<%@ page language="java"
errorPage="/PaginaError.jsp" %>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>~ Usuarios ~</title>
</head>
<body bgcolor="#000000" text="FF0000">
<center>
<FORM METHOD="POST" ACTION="/<url host>/servlet/BuscarDatos">
<table border=3 cellpadding=4 cellspacing=8>
<tr>
<td align=left> <label for="nombre">Nombre:</label> </td>
<td align=left> <input type="text" name="nombre"></td>
</tr>
<tr>
<td align=left> <label for="apellido">Apellido:</label> </td>
<td align=left> <input type="text" name="apellido"> </td>
</tr>
<tr>
<td align=center><input type="submit" name="action" value="Grabar"></td>
<td align=center><input type="reset" value="Limpiar"></td>
</tr>
</table>
</form>
</body>
</html>




- La servelt de busqueda algo asi: (BusquedaDatos.java)

public class ServletMostrarDatos extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


// aca hace la conexion como lo habias hecho antes

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery ("SELECT * FROM PAIS;");

// con esto le "agregas" al request un elemento nuevo....
request.setAttribute("rs", rs);

//con esto creas el dispstcher para hacer el forward
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher(MostarDat os.jsp);
dispatcher.forward(request, response);

} // doPost

Aqui, en ves de agregar el resultset al request, tendrias que usar el objeto CahedRowSet, como te comente antes, y mandar este, ya que sino en la jsp donde mostras los datos, tenes que cerrar la conexion, y eso no es muy elegante, en cambio con el otro (que es como un resultset "desconectado"), la conexion la abris y la cerras en el servlet, para encontrar documentacion sobre como utilizar CachedRowSet, entra a la pagina de SUN que ahi esta todo, incluyendo el archivo rowset.jar que se necesita.....


- Y para mostrar datos algo asi: (MostrarDatos.jsp):

<%@ page errorPage="/PaginaError.jsp"
language="java" %>
<jsp:useBean id="rs" class="<nombre del package del resultset>" scope="request"/>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>~ Datos Seleccionados ~</title>
</head>
<body bgcolor="#000000" text="FF0000">
<center>
<% while(rs.next){%>
<%=rs.getString(...) %>

<%}%>
</center>
</body>
</html>


Espero que te sirva, te repito nuevamente, este codigo lo hice al boleo recien, fijate y corregile los posible errores que seguramente puede tener, pero asi es una de las tantas formas de trabajar......


Espero poder ayudarte..... nos vemos y suerte.....
__________________
:pensando: ~ Daniel ~ :pensando:
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 02:13.