Llamar Función en Java desde JSP

Neeruu
26 de Abril del 2010
Hola a todos... quiero hacer una pregunta...
Tengo una función en java que se conecta a una base de datos... pero no se como llamarla desde JSP.

La función es esta:

package DB_Conection;

import java.sql.*;


public class DB_Prueba {
public Connection cn=null;
public Statement st = null;

public void conectar() throws Exception {
try{
System.out.println("Conectando");
String usuario="USUARIO";
String password="PASSWORD";
String driver="TU.DRIVER.Driver";
String cadenaconexion="jdbc:DRIVER://localhost/D:/BASE_DE_DATOS.EXT";

Class.forName(driver);
cn=DriverManager.getConnection(cadenaconexion,usuario,password);
System.out.println("Conexion Exitosa");
}
catch (Exception e) {
System.out.println("Error al Conectar DB:" + e);
}
}
}

Ahora quiero llamar a esa función desde una pagina en JSP y que me muestre los mensajes....
O como debería ser la forma correcta de ejecutar una función escrita en java y mostrar en una pagina JSP los resultados...


Aclaro que estoy empezando en Java...
Estoy trabajando con NetBeans 6.8...

Desde ya agradecido por la ayuda...

Saluda atte Neeruu :)

iAnki
03 de Mayo del 2010
Q tal.. mira puedes mandar llamar tu funcion desde un jsp como sigue.. Para mandar los msg's como alertas en tu jsp.. puedes hacerlo desde una funcion jsp.. donde valides si la conexion viene exitosa.. i mandarla a pantalla con un alert() para esto te recomiendo que tu metodo de conexion en lugar de ser void.. lo hagas tipo String.. para q tu variable de retorno sea variableExitoConexion = "Exito"; espero q sea de utilidad la ayuda.. saludos

iAnki
03 de Mayo del 2010
Q tal.. mira puedes mandar llamar tu funcion desde un jsp como sigue.. Para mandar los msg's como alertas en tu jsp.. puedes hacerlo desde una funcion jsp.. donde valides si la conexion viene exitosa.. i mandarla a pantalla con un alert() para esto te recomiendo que tu metodo de conexion en lugar de ser void.. lo hagas tipo String.. para q tu variable de retorno sea variableExitoConexion = "Exito"; espero q sea de utilidad la ayuda.. saludos

Alexis
08 de Mayo del 2010
Qué tal Neeruu

Bueno pues la solución más idónea es el uso de Servlets, que son clases que heredan de la clase abstracta HttpServlet, en la cual tendrás que sobreescribir varios métodos, entre ellos uno llamado init(). Este método se ejecutará inmediatamente de que es llamado el Servlet. Si no conoces sobre servlets te recomiendo que busques un poco y te documentes. Los Servlets deben ser registrados en tu archivo web.xml, donde existe un atributo del servlet que es load-on-startup, y ahi pondras el valor 1, un ejemplo de ello es el siguiente:


ConnectionServlet
com.jsp.servlets.ConnectionServlet
1


ConnectionServlet
/ConnectionServlet


(espero que el codigo salga formateado, es la primera vez que posteo en este sitio)

Como te decía, al indicar que el servlet se ejecutará en el momento en que tu servidor es arrancado, el método init() será ejecutado, y es precisamente ahí donde debes establecer tu conexión a la base de datos. Cualquier duda, escríbeme a mi correo e intentaré escribir la solución aquí mismo (no soy usuario y la verdad no deseo crearme una cuenta). Saludos y espero haber resuelto tu duda.

Alexis
08 de Mayo del 2010
El código es este (no salió foramteado hehe):

<servlet>
<servlet-name>ConnectionServlet</servlet-name>
<servlet-class>com.jsp.servlets.ConnectionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ConnectionServlet</servlet-name>
<url-pattern>/ConnectionServlet</url-pattern>
</servlet-mapping>