Por admin | Para la categoría de java j2ee | noticia del 13-04-2010
Los servlets de j2ee además de recibir peticiones de tipo get y post nos permiten recoger valores y parámetros prefijados en el archivo de despliegue de la aplicación.
Tomamos como punto de partida, la aplicación realizada sobre jdbc Enlace: jdbc elipse
Las modificaciones que se van a realizar en el método init del servlet base de datos le permiten cargar los valores del driver y el nombre de la base de datos declarados en el fichero web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <servlet> <description> </description> <display-name> basedatos</display-name> <servlet-name>basedatos</servlet-name> <servlet-class> conexion.basedatos</servlet-class> <init-param> <param-name>nombreBasedatos</param-name> <param-value>jdbc:mysql://localhost:3306/libros_jdbc</param-value> </init-param> <init-param> <param-name>driver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </init-param> </servlet> |
Solamente se modifica el método init para recuperar los valores de los parámetros
mediante las etiquetas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | public void init() throws ServletException { // TODO Auto-generated method stub super.init(); try { //String controlador = "com.mysql.jdbc.Driver"; String controlador = this.getInitParameter("driver"); Class.forName(controlador).newInstance(); //conectamos con la base de datos //conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/libros_jdbc","root","root"); String baseDatosUrl = this.getInitParameter("nombreBasedatos"); conexion = DriverManager.getConnection(baseDatosUrl,"root","root"); //creamos una sentencia sql sentenciaSql = conexion.createStatement(); } catch ( ClassNotFoundException e ) { System.out.println("no se pudo cargar el controlador"); } catch ( SQLException e) { System.out.println("Excepcion sql"+e.getMessage()); } catch (InstantiationException e ) { System.out.println ("objeto no creado"+e.getMessage()); } catch ( IllegalAccessException e ) { System.out.println("Acceso ilegal"+e.getMessage()); } } |
Mediante el método getInitParameter recuperamos los valores de los parámetros del servlet. Estos valores pueden ser utilizados únicamente por el servlet basededatos no por otros servlet. Para ser utilizados por otros servlet se necesita declarar parámetros de contexto, se verá en otro ejemplo.
