Como hacer paginación con JSP
|
|
- Asunción Río Franco
- hace 8 años
- Vistas:
Transcripción
1 Como hacer paginación con JSP Documento propiedad del portal Autor: Miguel Angel García, Pág. 1 de 35
2 Ref: REX PAG. HOJA DE INFORMACIÓN GENERAL CONTROL DOCUMENTAL PROYECTO: ENTIDAD DE DESTINO: TITULO: CODIGO DE REFERENCIA: Rexerve.com Cómo hacer paginación con páginas JSP. REX PAG. VERSION: 2.0 FECHA EDICION: AUTOR: Miguel Angel García RESUMEN: El documento explica cómo hacer paginación de registros, con páginas JSP. DERECHOS DE USO: La presente documentación es propiedad del portal. No tiene carácter de confidencial y podrá ser objeto de reproducción total o parcial, tratamiento informático o transmisión de cualquier forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, registro o cualquiera otro. Asimismo se advierte que los nombres de los propietarios deberán quedar intactos, informando siempre al destinatario final, de dónde se ha obtenido este material. El incumplimiento de las limitaciones señaladas por cualquier persona que tenga acceso a la documentación será perseguido conforme a ley vigente. Pág. 2 de 35
3 Paginación Muchos de vosotros me pedisteis en su día como hacer paginación de registros con Jsp. Quizá en el tutorial de Introducción a Jsp no quedó demasiado claro en su día. Pues bien a partir de ahora, vamos a comenzar un tutorial que os permitirá crear páginas jsp, gracias a un Bean, que muestren registros de una consulta paginados de n en n registros por página. Qué es la paginación de registros? Lo primero de todo es saber de qué estamos hablando, la paginación de registros (a partir de ahora paginación) es la propiedad de mostrar los resultados de una consulta, sea cual sea, el número de registros que devuelva dicha consulta, acotados en número de registros por página. Es decir y en resumen, mostrar por ejemplo, los registros de una consulta de 10 en 10 ó de 20 en 20, o de lo que haga falta. Esta imagen muestra como quedará la página cuando acabemos el tutorial: Esta figura muestra los registros de una consulta o tabla mediante páginas, lo que ocurre es que quizá el ejemplo que he puesto, no es demasiado identificativo porque da la casualidad de que solo tiene una página, pero tranquilos lo que haremos podrá tener tantas páginas como queramos. Y además se podrá parametrizar el número de registros que se desea mostrar por página y muchas otras cosas, como hacer ordenación por un campo que seleccione el usuario o hacer clic en un campo y que se redireccione a otra página incluso pasándole parámetros de la misma consulta. Pág. 3 de 35
4 Estructura del desarrollo y arquitectura. El desarrollo consistirá en crear primeramente un Bean llamado BeanPaginacion.java que tendrá todos métodos y propiedades necesarios para ser utilizado desde una página jsp. Este Bean, será standard y funcionará con cualquier consulta que le pasemos y con cualquier número de campos y registros. Es decir desarrollaremos un componente totalmente autónomo que permita realizar paginación de registros de forma básica y linealmente, de cualquier consulta sencilla. Imposible?. No. Yo lo hice, me costó bastante, pero al final es el Bean que más uso hoy en día y siempre lo llevo conmigo en todos los proyectos, y más pensando que tengo miles de registros en las tablas de mi Oracle y que sacar consultas con muchos datos supondría un trauma muy grande tanto para el navegador como para el usuario que podría esperar indefinidamente a que se ejecutara la consulta. Por supuesto la base de datos que usaremos será Oracle (8.1.7) que es la que tengo montada, sobre un Windows Server en diferente servidor que dónde se ejecutan las páginas. El servidor web es Apache lógicamente, y el servidor de Servlets montado en mi Linux RedHat 7.1, es Jakarta-Tomcat.Con esto tenemos de sobra para empezar a trabajar. La verdad es que no lo he probado con ninguna otra base de datos, pero no creo que encontréis problemas a lo hora de implementar el desarrollo para distintos motores de gestión de datos. A quién va dirigido? A todo el mundo, principiantes, intermedios o avanzados que quieran profundizar. Pero antes de nada tendréis que tener en cuenta que deberéis saber algo sobre: Beans Oracle SQL Arrays de Java Session Formularios Si conocéis algo de todo esto, no os costará nada comprender qué hace y cómo funciona en Bean Paginacion En cuanto al desarrollo necesitareis unas cuantas imágenes, para que el resultado del BeanPaginacion surta efecto, estas imágenes ya os las pasaré cuando nos hagan falta no os preocupeis, aunque cada uno puede poner las imágenes que le de la gana. Pág. 4 de 35
5 Estas imágenes, son por ejemplo, las que saldrán para pulsar en siguiente página, página anterior, etc.o los bordes del marco de la tabla de resultados.estas imágenes deberán ir ubicados en un directorio llamado images, pero ya os digo, lo veremos más adelante. Pág. 5 de 35
6 Funcionalidad Los ejemplos que vamos a crear consistirán en una o múltiples consultas a la base de datos de nuestro portal Rexerve, exactamente a unas tablas que tenemos creadas únicamente para realizar pruebas pruebas. El contenido de estas tablas ha sido cedido por el portal al que estamos muy agradecidos, y que cuenta con más de 1500 alojamientos y más de 350 localidades Extremeñas. Resumiendo, disponemos de una magnifica base de datos de alojamientos de la región de Extremadura en España. (claro como Jorge y yo somo de allí, de dónde iban a ser si no) El desarrollo se basará en la creación de páginas JSP que muestren en pantalla el resultado de una consulta a una tabla llamada REX_ALOJAMIENTOS En la página se mostrarán los registros con la siguiente estructura: TIPO ALOJAMIENTO, NOMBRE ALOJAMIENTO, PROVINCIA, LOCALIDAD Es decir una consulta básica pero con relaciones entre tablas, ya que como vereis más adelante las tablas estarán formadas por campos PK (Primary Key) referenciadas entre sí, por dichos campos clave. También se harán otras consultas en base a peticiones del usuario, simulando así un escenario algo más real, lo que quiere decir que podremos, no sólo mostrar los registros, sino hacer búsquedas y filtros por provincia, localidad, nombre etc. Modelo de datos Antes de empezar a crear el famoso Bean de paginación, deberemos tener claro que este ejemplo que vamos a realizar consistirá en una consulta a unas tablas ya creadas en Oracle cuyos Scripts podeis encontrar a continuación: TABLA ALOJAMIENTOS CREATE TABLE ALOJAMIENTOS ( ID_TIPO_ALOJAMIENTO NUMBER (6), ID_PROVINCIA NUMBER (6), ID_AYUNTAMIENTO NUMBER (6), ID_ALOJAMIENTO NUMBER (6) NOT NULL, NOMBRE VARCHAR2 (50), CONSTRAINT PK_ALOJAMIENTOS PRIMARY KEY ( ID_ALOJAMIENTO ) ) ; TABLA PROVINCIAS CREATE TABLE PROVINCIAS ( ID_PROVINCIA NUMBER (6), PROVINCIA VARCHAR2 (50), CONSTRAINT PK_PROVINCIAS PRIMARY KEY ( ID_PROVINCIA ) ) ; Pág. 6 de 35
7 TABLA AYUNTAMIENTOS CREATE TABLE AYUNTAMIENTOS ( ID_PROVINCIA NUMBER (6), ID_AYUNTAMIENTO NUMBER (6), LOCALIDAD VARCHAR2(100), CONSTRAINT PK_AYUNTAMIENTOS PRIMARY KEY ( ID_AYUNTAMIENTO ) ) ; TABLA TIPO_ALOJAMIENTOS CREATE TABLE TIPO_ALOJAMIENTOS ( ID_TIPO_ALOJAMIENTO NUMBER (6) DESCRIPCION VARCHAR2 (100), IMAGEN VARCHAR2 (100), CONSTRAINT PK_TIPO_ALOJAMIENTOS PRIMARY KEY ( ID_TIPO_ALOJAMIENTO ) ) ; NOT NULL, Una vez creadas estas tablas tendremos el modelo de datos exactamente igual que el que voy a utilizar yo para hacer los ejemplos. Pág. 7 de 35
8 Contenido de las tablas Como hacer paginación con JSP. A continuación se muestra un ejemplo de los datos que hay en las tablas: Siento no poder poneros los Scripts de INSERT de todos los datos en las tablas pero, no puedo dejaros toda esta información, ya que nos ha sido cedida. Alojamientos Cómo ves está formado el tipo de alojamiento, la provincia, la localidad, el código único de cada alojamiento, y por supuesto del nombre de alojamiento. La tabla contiene registros. Ayuntamientos Esta tabla sólo contiene los datos básicos de una localidad, nuestros amigos de VerExtremadura.com, no nos han dado más información, de todos muchas gracias de nuevo, con el campo id_provincia, el campo único id_ayuntamiento y el nombre del municipio. La tabla contiene 382 registros. PROVINCIAS Pág. 8 de 35
9 Como ves la cosa más simple del mundo, dos registros con el nombre de las diferentes provincias que tiene la comunidad Extremeña. Tiene 2 registros. TIPO_ALOJAMIENTOS Esta tabla es también muy simple, pero tiene la particularidad de que dispone de un campo llamado Imagen, el cual contiene la dirección exacta dónde se encuentra las imágenes que después vamos a mostrar en pantalla, es decir en lugar de poner la descripción del tipo de alojamiento, pondremos la imagen que suele ser identificarse más con el tipo de alojamiento. Esta tabla tiene 12 registros. IMAGENES Estas imágenes te las puedes descargar haciendo clic aquí y debes ponerlas exactamente en el directorio images/ de tu servidor o de tu directorio virtual. Pág. 9 de 35
10 Comenzamos el trabajo Como hacer paginación con JSP. En este apartado tocaremos de forma detallada algunos aspectos a tener en cuenta a la hora de desarrollar el Bean, qué es, cómo funciona, los métodos y las propiedades. En nuestro directorio de classes, habitualmente ubicado en, /WEB-INF/classes guardaremos nuestro BeanPaginacion.java, y una vez allí compilarlo tantas veces cómo haga falta. El BeanPaginacion no es complicado de implementar, pero leer el código puede llegar a ser tedioso ya que verás muchos nombre de variables que a lo mejor no aparece claro que hace. Por eso, mucha gente, sobreentiende que funciona, se lo descarga, lo compila y luego lo usa. Totalmente de acuerdo, si algo funciona úsalo sin más. No creo que tengas demasiado tiempo para leerte todo lo referente al bean. Dos cosas importantes: 1. Si quieres hacer tu BeanPaginacion.java te recomiendo que leas con dedicación todo lo referente a las variables y los métodos del mismo. Te servirá de mucho comprender que hace cada fragmente de código en el caso de que tengas problemas para implementarlo. 2. Y dos, si no quieres saber como funciona el Bean y simplemente quieres usarlo, puedes descargártelo y pasar a leer con mucha atención, como hacer las páginas JSP que lo utilizan. Pág. 10 de 35
11 El BeanPaginacion.java El BeanPaginacion.java como cualquier otro Bean, empieza importando las clases necesarias, en esto caso, util,io y sql; y luego el propio nombre del fichero como constructor. import java.util.*; import java.io.*; import java.sql.*; public class BeanPaginacion{ Declaración de variables Entran a formar parte del Bean, numerosas variables que voy a detallar, más o menos, a continuación: //DECLARACIÓN DE VARIABLES //Variables de conexión a la base de datos. Connection cn = null; Statement s = null; boolean conectado; // Conectado si o no? //Datos de la conexión public String dburl = ""; public String pwd = ""; public String usuario = ""; // Variables para las funciones de Agregados, como un SUM // de algún campo numérico. String stragregados = ""; String strcadenafa = ""; // Variables globales para saber si existe un elemento o no y // auxiliar para guadar el target del enlace. boolean encontrado = false; String strtarget = ""; //Variable para guardar la cadena que mostrará el pie con los //número de página. String strcadenapaginas = ""; //Variables para los colores, está inicializados a mi gusto. Pág. 11 de 35
12 // Cambialos si lo deseas. String ColorFondoTabla = "#000066"; String ColorEncabezadoTabla = "#CCCCCC"; String ColorPieTabla = "#DDDDDD"; String ColorTextoFuncionesAgregado = "#123456"; String ColorTextoEncabezadoTabla = "#000000"; String ColorFilaImpar = "#FFFFFF"; String ColorFilaPar = "#EFEFEF"; String ColorFondoTitulo = "#000066"; String ColorTextoTitulo = "#FFFFFF"; String ColorTextoFilas = "#123456"; //Estas son genericas para el formateado de los resultados, como // el ancho de la tabla, el tamaño de la letra, el tipo de // letra etc. String stranchotabla = "70%"; String strtamanoletra = "2"; String strmensaje_no_hay_resultados = Sin datos"; String strhtml_no_resultados = ""; String strtitulo_rejilla = "Consulta"; String strfaceletra = "Verdana"; boolean bl_mostrar_paginaxdey = false; boolean bl_mostrar_paginas = true; // Quizá las más importantes son estas variables que son Arrays // de dos dimensiones. Se explicarán en detalle más adelante. String arcampos_ira[][]; String artitulo_campos[]; String arordenar_campos[][]; String arfagregados_campos[][]; String arnombres_campos[]; //Necesitamos una variable para saber por qué campo vamos a // contar el número de registros que hay en la consulta. String strcampocontarregistros = ""; //Al hacer clic en siguiente página o en anterior, hay que //decirle al Bean el nombre la página.se inicializa a prueba.jsp // pero es obligatorio poner el adecuado si quieres que // funcione. String que_pagina = "prueba.jsp"; //Variables que formaran la consulta. Muy importantes. String strselect = ""; String strfrom = ""; String strgroupby = ""; String strwhere = ""; String strorderby = ""; String enlace1,enlace2 = ""; boolean hay_orderby = false; //Variable para pasarle otros parámetros si hacen falta. // al estilo de &miparam1=valor1&miparam2=valor2 String strotrosparametros = "&"; Pág. 12 de 35
13 //Esta variable sigue aquí pero no implementaremos la impresión boolean imprimir = true; // Típica variable que me ayudará contar registros. int contador = 1; //Cuantos registros por página, se inicializa a 10. // Pero se puede cambiar claro. int registros = 10; //Esta variable, me dice en qué registro estamos, para mostrar //el resto a partir de él. int RegistroActual = 1; Hasta ahora sólo hemos visto como crear de cero el Bean, y las variables que necesitamos. Con lo que llevamos hasta ahora, que no es prácticamente nada, Quedaría de momento así: import java.util.*; import java.io.*; import java.sql.*; public class BeanPaginacion{ /* Declaración de variables aqui */ Pág. 13 de 35
14 Componentes del Bean Como hacer paginación con JSP. El BeanPaginacion.java, se compone de un constructor, funciones, métodos y propiedades. CONSTRUCTOR El constructor de una clase de Java, explicado básicamente, es lo primero que se ejecuta cuando un Bean es inicializado. Este contiene las instrucciones que necesitaremos para hacer correr nuestro Bean. El contructor quedará así: public BeanPaginacion() throws Exception { usuario pwd dburl Conectar(); = USUARIO_BASE_DATOS ; = PASSWORD_DE_BASE_DATOS ); = CADENA_URL_ORACLE_PARA_LA_CONEXION"); FUNCIONES GENERALES Las funciones son estas: Conectar La función Conectar, precisamente, inicializa las variables Cn y s con la conexión a la base de datos y el Statement principal que usaremos a lo largo del Bean. public void Conectar() throws Exception { conectado = true; try { Class.forName("oracle.jdbc.driver.OracleDriver"); cn = DriverManager.getConnection(dbURL, usuario, pwd) s = cn.createstatement(); catch(exception e) { conectado = false; throw e; Pág. 14 de 35
15 Hacer_CadenaNoDatos Como hacer paginación con JSP. Esta función crea un String con la cadena que queramos que salga en pantalla cuando no hay resultados en la consulta. Se puede hacer todo lo compleja o bonita que se quiera pero esta la vamos a hacer muy simple. public void Hacer_CadenaNoDatos() { strhtml_no_resultados= <P> ; strhtml_no_resultados+= strmensaje_no_hay_resultados; strhtml_no_resultados+= " <p> </p> "; Tiene_Registros Esta función tiene como finalidad, devolvernos true en caso de existan registros en la consulta o false, en caso contrario. public boolean TieneRegistros() { String strsql = ""; // SE CREA LA SELECT strsql=strselect; strsql+=strfrom; strsql+=strwhere; if (strgroupby!=null){ strsql+=strgroupby; strsql+=strorderby; boolean boltiene = false; int inttotalreg = 0; try { Statement s1 = cn.createstatement(); ResultSet rstotalregistros = s1.executequery("select count(" + strcampocontarregistros +") AS TOTAL_REGISTROS " + strfrom + strwhere ); if (rstotalregistros!= null){ rstotalregistros.next(); inttotalreg = rstotalregistros.getint("total_registros"); if (inttotalreg>0) boltiene=true; rstotalregistros.close(); s1.close(); catch(exception j){ return boltiene; Pág. 15 de 35
16 CerrarConexion Simplemente cierra la conexión cuando termina. public void CerrarConexion() { try { s.close(); cn.close(); catch(exception e){ Pág. 16 de 35
17 PROPIEDADES Como hacer paginación con JSP. Las propiedades, que yo las llamo así por su similitud a una clase de Visual Basic, son utilizadas para pasarle al Bean los parámetros necesarios antes de que muestre los registros en pantalla. Como por ejemplo el título del listado, el color de las filas impares, el de las pares, o bien el tipo de fuente o el tamaño que usará al imprimir los resultados en pantalla. Las propiedades cargan en las variables globales para el Bean, los datos que le pasemos desde la página JSP, así pues no voy a explicar cada propiedad ya que las variables están, a mi parecer, debidamente comentadas. Puedes guiarte por ellas para saber que hace cada propiedad. Estas son todas las propiedades del Bean: public void settextonohayresultados(string v_mensaje){ strmensaje_no_hay_resultados = v_mensaje; public void setotrosparametros(string v_otros){ strotrosparametros = v_otros; public void setanchotabla(string strancho){ stranchotabla = strancho; public void setcolorfondotabla (String RGBColor){ ColorFondoTabla = RGBColor; public void setcolorencabezadotabla (String RGBColor){ ColorEncabezadoTabla = RGBColor; public void settipoletra strfaceletra (String strtipoletra){ = strtipoletra; public void setcolorpietabla (String RGBColor){ ColorPieTabla = RGBColor; public void settamanoletra (String tamanio){ strtamanoletra = tamanio; public void setcolortextoencabezadotabla (String RGBColor){ ColorTextoEncabezadoTabla = RGBColor; public void setcolorfilaimpar (String RGBColor){ ColorFilaImpar = RGBColor; public void setcolorfilapar (String RGBColor){ ColorFilaPar = RGBColor; public void setcolortextofilas (String RGBColor){ ColorTextoFilas = RGBColor; public void setcolortextotitulo (String RGBColor){ ColorTextoTitulo = RGBColor; Pág. 17 de 35
18 public void setregistros_pagina(int intregistros){ registros = intregistros; public void setregistroactual(int intregistro){ RegistroActual = intregistro; public void settitulos_campos(string array_titulos_campos[]){ artitulo_campos = array_titulos_campos; public void setordenar_campo(string array_ordenar_campos[][]){ arordenar_campos = array_ordenar_campos; public void settitulo_rejilla(string strtitulo){ strtitulo_rejilla = strtitulo; public void setcamposira(string array_camposira[][]){ arcampos_ira = array_camposira; public String[][] getcamposira(){ return arcampos_ira; public void setpagina(string strpagina){ que_pagina = strpagina; public void setcampocontarregistros(string Campo){ strcampocontarregistros = Campo; public String getcampocontarregistros(){ return strcampocontarregistros; public void setfagregados_campo(string array1[][]){ arfagregados_campos = array1; public void setnombres_campos(string array_nombres_campos[]){ arnombres_campos = array_nombres_campos; public void setmostrar_paginaxdey(boolean SioNo){ bl_mostrar_paginaxdey = SioNo; public void setmostrar_paginas(boolean SioNo){ bl_mostrar_paginas = SioNo; public void setselect(string strselect1){ strselect = strselect1; public void setfrom(string strfrom1){ strfrom = strfrom1; public void setgroupby(string strgroupby1){ strgroupby = strgroupby1; public void setwhere(string strwhere1){ strwhere = strwhere1; Pág. 18 de 35
19 MÉTODOS Como hacer paginación con JSP. public void setorderby(string strorderby1){ strorderby = strorderby1; El más importante es el método Mostrar_Registros() que cómo su nombre indica es el que se encarga de imprimir los resultados y además de evaluar todos los parámetros que han sido pasados previamente. El único método que tiene el Bean es precisamente la parte más importante del mismo, ya que es el que te pondrá los datos en pantalla. Se llama Mostrar_Registros() Pág. 19 de 35
20 La página JSP Cómo tenemos casi todo el Bean creado, a falta del método, Mostrar_Registros(), vamos a hacer una pausa para empezar a ver cómo quedaría la página JSP, mediante el ejemplo que aparece en este tutorial. Nos detendremos en cada apartado de la página JSP para explicar a fondo lo que hace cada línea y los parámetros que se le pasan al Bean para que este, funcione adecuadamente. El código de la página JSP, no es especialmente difícil, si se conoce cómo funciona el Bean, ya que únicamente es rellenar las variables, establecerlas y llamar al método Mostrar_Registros(). Enumeraré en poco pasos, como debería ir quedando la página JSP. Son estos: 1.Cabecera de página. 2.JavaScript. 3.Posicionamiento y dirección del cursor. 4.Cláusula SELECT. 5.Nombre y Títulos de los campos 6.Campo clave. 7.Otras variables importantes. 8.Clic en los campos para detalles del registro 9.Ordenación. 10. Mostrar registros y cierre 1.Cabecera de página Lo primero de todo es incluir las líneas necesarias para decirle a la página JSP que utilice el Bean, son estas: <%@ page language="java" import="java.sql.*,java.io.*,java.util.*" %> <jsp:usebean id="mibeanprueba" class="beanpaginacion" scope="page"> <jsp:setproperty name="mibeanprueba" property="*"/> </jsp:usebean> Cómo deberías saber, para llamar a un Bean, necesitas la instrucción <jsp:usebean..> No voy a entrar a explicar cómo se establece la conexión con un Bean, ni los parámetros, tanto opcionales como obligatorios en dicha llamada, ya que no es materia de este tutorial. Simplemente yo lo hago así. Pág. 20 de 35
21 2. JavaScript Una parte fundamental de la página JSP para que el efecto de resaltado de cada línea tenga efecto son unas instrucciones de JavaScript que debe ir al principio de cada página, entre los tagas, <head> y </head> Un ejemplo de código sería este: <html> <head> <title>ejemplo de Paginación. Rexerve.com</title> <SCRIPT LANGUAGE="JavaScript"> <!-- function dentro(origen,color) { if (!origen.contains(event.fromelement)) { // origen.style.cursor = 'hand'; origen.bgcolor = Color; function salir(origen,color2) { if (!origen.contains(event.toelement)) { origen.style.cursor = 'default'; origen.bgcolor = Color2; function hacer_click(origen) { if(event.srcelement.tagname=='tr'){ origen.children.tags('a')[0].click(); // --> </SCRIPT> </head> Gracias a estas líneas, al poner el cursor sobre cualquier línea de los datos, dicha línea, se resaltará con un color que puede personalizarse a gusto del consumidor. Aunque lo ideal es meter este código dentro de un archivo de Script.js puede ponerlo en todas las páginas si lo deseas. 3. Posicionamiento y dirección del cursor. A continuación debemos recoger los parámetros que el propio Bean nos envía. Estos parámetros son el Registro por dónde quieres empezar a mostrar registros y otro es la dirección a dónde queremos dirigirnos, es decir hacia delante o hacia atrás. El código quedaría asi: <%// INICIALIZA EL REGISTRO EN EL QUE DEBE POSICIONARLE LA PRIMERA VEZ // QUE SE ENTRA EN LA PAGINA. // **************************************************** int RegistroActual = 1; String v_direccion = ""; // RECOGE EL PAREMETRO POR SI SE HA MOVIDO DE PAGINA // ************************************************** try { if (request.getparameter("actual")!= null) RegistroActual = Integer.parseInt(request.getParameter("Actual")); catch(exception e) { RegistroActual = 1; Pág. 21 de 35
22 // RECOGE EL PAREMETRO DE DIRECCION // ********************************** try { if (request.getparameter("direccion")!= null) v_direccion = request.getparameter("direccion"); catch(exception e) { v_direccion = null; String empezar = request.getparameter("actual"); if (empezar==null) empezar=""; //VARIABLE PARA EL REGISTRO ACTUAL DONDE SE ENCUENTRA // SI SE LE HA PASADO PARAMETRO DE BUSQUEDA SE LE PONE AL // RegistroActual if (!(empezar.equals(""))){ if (Integer.parseInt(empezar) <= 0) RegistroActual = 1; else RegistroActual = Integer.parseInt(empezar); %> A partir de estas líneas de código estamos en disposición para empezar a pasarle parámetros al BeanPaginacion. 4. Cláusula SELECT Ahora vamos a establecer las opciones de la SELECT, para ello contamos con 4 variables importantes, que además deben estar siempre creadas y establecidas, si no es así no funcionará correctamente. El siguiente fragmento de código quedará asi: <% // VARIABLES PARA FORMAR LA SELECT COMPLETA // **************************************************** String strselect = ""; String strfrom = ""; String strwhere = ""; String strorderby = ""; // SE CREA LA SENTENCIA 'SELECT', EL 'FROM', LA 'WHERE' Y EL // 'ORDER BY' // ****************************************************** strselect=" SELECT ALOJAMIENTOS.ID_ALOJAMIENTO AS CODIGO,"; strselect+=" '<img src=\"' TIPO_ALOJAMIENTOS.IMAGEN '\">' AS IMAGEN,TIPO_ALOJAMIENTOS.DESCRIPCION AS DESCRIPCION,ALOJAMIENTOS.NOMBRE AS NOMBRE, "; strselect+=" PROVINCIAS.PROVINCIA AS PROVINCIA,AYUNTAMIENTOS.LOCALIDAD AS MUNICIPIO"; strfrom=" FROM ALOJAMIENTOS,TIPO_ALOJAMIENTOS,PROVINCIAS,AYUNTAMIENTOS "; strwhere=" WHERE ALOJAMIENTOS.ID_AYUNTAMIENTO=AYUNTAMIENTOS.ID_AYUNTAMIENTO "; Pág. 22 de 35
23 strwhere+=" AND ALOJAMIENTOS.ID_PROVINCIA =PROVINCIAS.ID_PROVINCIA"; strwhere+=" AND PROVINCIAS.ID_PROVINCIA = AYUNTAMIENTOS.ID_PROVINCIA "; strwhere+=" AND ALOJAMIENTOS.ID_TIPO_ALOJAMIENTO=TIPO_ALOJAMIENTOS.ID_TIPO_ALOJAMIENTO "; strorderby=" ORDER BY ALOJAMIENTOS.NOMBRE "; %> <%// SE ESTABLECEN LA SELECT, LA FROM, LA WHERE Y EL ORDER BY // **************************************** mibeanprueba.setselect(strselect); mibeanprueba.setfrom(strfrom); mibeanprueba.setwhere(strwhere); mibeanprueba.setorderby(strorderby); %> 5. Nombres y Títulos de los campos Para que el Bean sepa cuales son los campos que necesita sabes, y para puedas imprimir solo aquellos que de verdad quieres que muestre, permitiendo hacer así una SELECT con más campos por si lo necesitas para algo, tiene que especificarle que campos quieres que muestre; esto se hace con este código: <%//ARRAY CON LOS NOMBRES DE LOS CAMPOS QUE SE QUIEREN MOSTRAR //********************************************************** String[] array_nombres_campos= new String[4]; array_nombres_campos[0] = "IMAGEN"; array_nombres_campos[1] = "NOMBRE"; array_nombres_campos[2] = "PROVINCIA"; array_nombres_campos[3] = "MUNICIPIO"; mibeanprueba.setnombres_campos(array_nombres_campos); %> Procura que coincidan con los de la SELECT, es totalmente obligatorio ya que si no lo es así te dirá que no encuentra el campo en la cláusula. Títulos de los campos. Los nombre de los campos no siempre coinciden con lo que de verdad quieres que escriba en pantalla, a decir verdad, casi nunca coincidirán. Por ejemplo es muy común que en la cabecera de la columna COD_REGISTRO, quieras poner CODIGO simplemente. Por este motivo he separado en dos Arrays los nombres de los campo de los nombres de las columnas. Para establecer la descripción de las columnas puedes escribir el siguiente código: <% //ARRAY CON LOS TITULOS DE LOS CAMPOS QUE APARECEN //************************************************ String[] array_titulos_campos = new String[4]; array_titulos_campos[0] = "Tipo"; array_titulos_campos[1] = "Alojamiento"; array_titulos_campos[2] = "Provincia"; array_titulos_campos[3] = "Localidad"; mibeanprueba.settitulos_campos(array_titulos_campos); %> Pág. 23 de 35
24 6. Campo clave Es muy importante, tener un campo clave único para que el Bean pueda saber cuantos registros tiene la consulta y así saber cuantas páginas tiene que mostrar en los resultados. Para ello debes establecer cual es campo clave o Primary Key de tu consulta, en este ejemplo es ALOJAMIENTOS.ID_ALOJAMIENTO: <%//CAMPO QUE SE UTILIZA PARA SABER CUANTOS REGISTROS TIENE LA SELECT //************************************************** mibeanprueba.setcampocontarregistros("alojamientos.id_alojamiento"); %> 7. Otras variables importantes Otros datos importantes serán el número de registros que deseas poner en cada pantalla, el ancho de la tabla con los resultados y el nombre de la página JSP. Para establecer estos valores sólo debes escribir las siguiente líneas de código: <% // SE ESTABLECEN EL NUMERO DE REGISTROS POR PAGINA // *********************************************** mibeanprueba.setregistros_pagina(5); // A QUE PAGINA TIENE QUE IRSE CUANDO HACE LA PAGINACIÓN // ES EL MISMO NOMBRE QUE ESTA PAGINA // ***************************************************** mibeanprueba.setpagina("ejemplo_paginacion2.jsp"); // ANCHO DE LA TABLA CON LOS RESULTADOS // ***************************************************** mibeanprueba.setanchotabla("500"); //PIXELS. TAMBIEN PUEDES PONER POR EJEMPLO 80% //SE LE PASA EN QUE REGISTRO SE QUIERE EMPEZAR A MOSTRAR DATOS //************************************************************* mibeanprueba.setregistroactual(registroactual); //TITULO DE LA REJILLA //********************* mibeanprueba.settitulo_rejilla("cabecera de la consulta"); %> 8. Clic en los campos para detalles del registro. Al mostrar registros en pantalla lo más habitual es que necesitemos hacer clic en alguna parte para irnos a otra página y mostrar detalle por ejemplo, o bien mostrar otra página que disponga de más información. Para ello he habilitado una propiedad especial que permitirá hacer este proceso :SetCampoIrA. SetCampoIrA, es una propiedad a la que deberás pasar siempre un Array con al menos 4 elementos, el nombre del campo que cogerá como valor del parámetro, el nombre del parámetro, el título del campo de los mostrados en pantalla que utilizará para hacer el clic y por último la página a la que debe irse. <% /* ******************************************************* Pág. 24 de 35
25 COMO CONSTRUIR EL ARRAY DE IR A --> IMPORTANTE QUE ESTE ARRAY TENGA INFORMACION CORRECTA array_camposira[n][0] = "CODIGO"; --> nombre del campo que coge como valor del parametro; array_camposira[n][1] = "id"; --> nombre del parametro array_camposira[n][2] = NOMBRE"; --> campo de los mostrados que se utiliza para hacer el link array_camposira[n][3] = "detalles1.jsp"; --> pagina a la que se va SI EL ENLACE A OTRA PAGINA TIENE MAS DE UNA PARAMETRO BASTA CON AGREGAR UN ELEMENTO MAS AL ARRAY CON EL MISMO NOMBRE DE CAMPO QUE VINCULA PERO CON DISTINTO NOMBRE DE PARAMETRO Y DISTINTO VALOR DE CAMPO EN EL EJEMPLO, EL ELEMENTO 0 Y 1 DEL ARRAY UTILIZAN EL MISMO CAMPO DE LINK Y TIENE DOS PARAMETRO QUE SE LE PASA A LA PAGINA detalles1.jsp ****************************************************** */ String[][] array_camposira = new String[3][4]; array_camposira[0][0] = "CODIGO"; array_camposira[0][1] = "id_alojamiento"; // --> SI HAY DOS IGUALES LOS COGERÁ JUNTOS array_camposira[0][2] = "NOMBRE ; array_camposira[0][3] = " detalles1.jsp"; %> mibeanprueba.setcamposira(array_camposira); 9. Ordenación. Otro aspecto que puede ser importante es la ordenación, para poder ordenar la consulta por alguno de los campos puedes utilizar la propiedad setordenar_campo(). Aquí tienes un ejemplo de cómo se usa. <% //ARRAY CON LOS NOMBRES DE LOS CAMPOS QUE PERMITEN ORDENACION //************************************************ String[][] array_ordenar_campos = new String[1][2]; array_ordenar_campos[0][0] = "Alojamiento";// --> título del campo array_ordenar_campos[0][1]= "NOMBRE";// ---> nombre del campo mibeanprueba.setordenar_campo(array_ordenar_campos); %> 10. Mostrar registros y cierre. Por último debemos llamar al método que hace que todo funcione que es, el ya fomoso, Mostrar_Registros(). Aunque todavía no lo hemos explicado, (ya lo haremos), es el motor que hace funcionar todo. Deberás poner esta líneas de código de esta forma: <% //MOSTRAR LOS RESULTADOS EN PANTALLA //********************************* %> Pág. 25 de 35
26 <%=mibeanprueba.mostrar_registros()%> </body> </html> La verdad es que entender todo lo que hemos visto hasta ahora, puede llevarte tiempo. Así que puedes ver y descargarte todo el código de la página JSP siguiendo este enlace : /rexerve/samples/ejemplo_paginacion.txt O bien si deseas ver un ejemplo de lo que hace esta página jsp, dirígete a: /rexerve/ejemplo_paginacion2.jsp Pág. 26 de 35
27 El método Mostrar_Registros() Por fin llegamos al último capítulo de este tutorial y lo hacemos mostrando el código que consigue mostrar los registros en pantalla, teniendo en cuenta todos los parámetros que le hemos pasado desde la página JSP. El método Mostrar_Registros(), como su propio nombre indica, es el encargado de elaborar la Select, en base a las variables strselect, strfrom, strwhere y strorderby, una simple concateneción basta para formar la cláusula, y empezar, después, a recorrer los registros des el registro marcado como RegistroActual. No es difícil de entender, pero si de hacer, ya que además de poner los registros en la página de una forma coherente y paginada, tiene que saber, por ejemplo en campo se tiene que hacer un clic, y que página ir, y además que parámetros pasarle a dicha págia. O bien saber si tiene que hacer ordenación por un campo u otro. Se utilizan algunas imágenes que puedes encontrar justo debajo. y además un punto transparente de 1x1 pixels. Puedes descargártelas de : Como se que ahí es difícil de leer, tienes el Bean completo en la dirección: En fin aquí el va todo el código de este método: public String Mostrar_Registros(){ String strsql = ""; String strcadena = ""; int contador = 1; int i = 0; // CREO LA SELECT strsql=strselect; strsql+=strfrom; strsql+=strwhere; //GROUP BY 25/02/2002 if (strgroupby!=null){ strsql+=strgroupby; strsql+=strorderby; try { // ***************************************** // SACA LOS DATOS PARA LAS FUNCIONES DE AGREGADO. Pág. 27 de 35
28 // ***************************************** Statement sfa = cn.createstatement();; ResultSet rsagregados ; if (arfagregados_campos!= null){ for (int mk=0;mk<arfagregados_campos.length;mk++){ stragregados = "SELECT "; stragregados+= "'<div align=\""+arfagregados_campos[mk][4]+"\">' TO_CHAR("+arFAgregados_Campos[mk][2]+ "(" +arfagregados_campos[mk][1]+"),'99,999,999,990.90') '</div>' "; stragregados+=strfrom; stragregados+=strwhere; rsagregados = sfa.executequery(stragregados); if (rsagregados!= null){ rsagregados.next(); arfagregados_campos[mk][3] = rsagregados.getstring(1); // CALCULA EL NUMERO DE PAGINAS QUE HAY EN LA SELECT rsagregados.close(); // ***************************************** // SACA EL NUMERO DE REGISTROS DE LA TABLA // ***************************************** int inttotalreg = 0; Statement s1 = cn.createstatement(); ResultSet rstotalregistros = s1.executequery("select count(" + strcampocontarregistros +") AS TOTAL_REGISTROS " + strfrom + strwhere ); if (rstotalregistros!= null){ rstotalregistros.next(); inttotalreg = rstotalregistros.getint("total_registros"); // CALCULA EL NUMERO DE PAGINAS QUE HAY EN LA SELECT // *************************************************** int Total_Paginas = 0; if (inttotalreg > 0){ Total_Paginas = inttotalreg / registros; if (inttotalreg % registros >0) Total_Paginas ++; rstotalregistros.close(); s1.close(); // FIN DEL REGISTROS DE LA TABLA // ***************************** { if (inttotalreg >0 && (RegistroActual >=1) ) strcadena+="<table width='"+stranchotabla+"' border='0' cellspacing='2' cellpadding='1' align='center'>"; strcadena+=" <tr bgcolor='"+colorfondotabla+"'> "; strcadena+=" <td> "; Pág. 28 de 35
29 strcadena+="<table width='100%' border='0' cellspacing='1' cellpadding='3' align='center'>"; strcadena+=" <tr background=\"images/top_nav.jpg\" bgcolor='"+colorfondotitulo+"'> "; if( imprimir ) { strcadena+=" <td background=\"images/top_nav.jpg\" colspan='"+arnombres_campos.length+"'><b><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextotitulo+"'><b>" + strtitulo_rejilla + "</b></font></b></td>"; else { strcadena+=" <td colspan='"+(arnombres_campos.length- 1)+"'><b><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextotitulo+"'><b>" + strtitulo_rejilla + "</b></font></b></td>"; //strcadena+=" <td align='right'><a href='imprimir_busqueda.jsp?formulario=1'><image src='images/printer2a.gif' border='0' alt='versión imprimible'></a></td>"; strcadena+="</tr>"; strcadena+=" <tr> "; //el order by pasado por el array hay_orderby=false; for (int k=0;k<artitulo_campos.length;k++){ strcadena+="<td bgcolor='" +ColorEncabezadoTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'><b>" + artitulo_campos[k] + "</b></font>"; try { for (int mm=0;mm<arordenar_campos.length;mm++){ if (artitulo_campos[k].equals(arordenar_campos[mm][0])){ strcadena+="<a href="+que_pagina+"?orderby=order%20by%20"+arordenar_campos[mm][1]+str OtrosParametros+"><img width=\"20\" height=\"17\" align=\"absmiddle\" alt=\"ordenar Ascendente\" border=\"0\" src=\"images/order_down1.gif\"></a> <a href="+que_pagina+"?orderby=order%20by%20"+arordenar_campos[mm][1]+"%2 0DESC"+strOtrosParametros+"><img border=\"0\" width=\"16\" height=\"17\" align=\"absmiddle\" src=\"images/order_up1.gif\" alt=\"ordenar descendentemente\"></a>"; catch(exception e){ strcadena+="</td>"; strcadena+=" </tr>"; //**************************************************************** *********** //PONE LOS RESULTADOS DE LAS FUNCIONES DE AGREGADO EN UNA CADENA. strcadenafa Pág. 29 de 35
30 //**************************************************************** *********** try{ if (arfagregados_campos.length>0) strcadenafa=" <tr> "; catch(exception j){ for (int yk=0;yk<artitulo_campos.length;yk++){ try { encontrado = false; for (int sa=0;sa<arfagregados_campos.length;sa++){ if (artitulo_campos[yk].equals(arfagregados_campos[sa][0])){ encontrado = true; strcadenafa+="<td bgcolor='" +ColorEncabezadoTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextofuncionesagregado+"'><b>" + arfagregados_campos[sa][3] + "</b></font>"; if (!(encontrado)) strcadenafa+="<td bgcolor='" +ColorEncabezadoTabla+"'><img src=\"images/punto_trans.gif\">"; try{ catch(exception e){ strcadenafa+="</td>"; if (arfagregados_campos.length>0) strcadenafa+=" </tr> "; catch(exception j){ ResultSet rs = s.executequery(strsql); if (inttotalreg >0 && (rs.next() RegistroActual >=1) ) { int contador_registros = 1; int pagina = 1; int registros_anteriores = 1; //**************************************************************** ****** //SABER LOS REGISTROS ANTERIORES Y Y LA PAGINA EN LA QUE ESTA EL USUARIO //**************************************************************** ****** while (registros_anteriores < RegistroActual) { rs.next(); registros_anteriores++; //CALCULA QUE PAGINA SE ESTA MOSTRANDO //************************************** if (contador_registros >= registros) { contador_registros = 0; pagina++; //VARIABLE CUYO VALOR ES LA PAGINA EN LA QUE EST\u00c1 Pág. 30 de 35
31 Como hacer paginación con JSP. contador_registros++; //********************** //PAGINAS DE LA CONSULTA //********************** int inicio = 1; // SE CALCULA EN QUE PAGINA DEBE EMPEZAR LA CADENA DE PAGINAS // ********************************************************** if ( pagina > 10 ) inicio = pagina - 5; else if (pagina==10) inicio = 9; int contador_paginas = 1; // HAGO LA CADENA QUE SIRVE PARA MOSTRAR LAS PAGINAS // *************************************************** for (int y=inicio;y<=total_paginas;y++){ if (y!= pagina) strcadenapaginas+="<a href='" +que_pagina +"?Actual=" + String.valueOf((y*registros)+1- registros)+"&direccion=s&orderby="+strorderby+strotrosparametros+"'>"; else strcadenapaginas+="<b><font size='"+strtamanoletra+"' face='"+strfaceletra+"'>["; strcadenapaginas+=y; if (y!= pagina) strcadenapaginas+="</a>"; else strcadenapaginas+="]</font></b>"; if (y!=total_paginas) strcadenapaginas+=" "; contador_paginas++; if (contador_paginas >10) break; // si ya se que queda un poco mal pero me la suda!! // REGISTROS DE LA CONSULTA // *********************** do { if (i==0){ strcadena+="<tr bgcolor='" + ColorFilaImpar +"' onclick=\"hacer_click(this)\" onmouseout=\"salir(this,'"+colorfilaimpar+"');\" onmouseover=\"dentro(this,'#efef99');\">"; i=1; else { strcadena+="<tr bgcolor='" + ColorFilaPar + "' onclick=\"hacer_click(this)\" onmouseout=\"salir(this,'"+colorfilapar+ "');\" onmouseover=\"dentro(this,'#efef99');\">"; i=0; Pág. 31 de 35
32 CAMPO Como hacer paginación con JSP. for (int j=0;j<arnombres_campos.length;j++){ enlace1= ""; enlace2= ""; //SE CONTROLA SI HAY QUE PONER <A HREF..> EN EL boolean hay_mas; int g=0; int h=0; while (g<arcampos_ira.length){ // SI HAY QUE PONER UN LINK... if (arcampos_ira[g][2] == arnombres_campos[j]){ hay_mas = false; strtarget=""; try{ if (arcampos_ira[g][4]!= null){ strtarget = " target="+arcampos_ira[g][4]; catch(exception e){ enlace1 = "<a "+strtarget+" href="+ arcampos_ira[g][3]+ "?" + arcampos_ira[g][1] + "=" + rs.getstring(arcampos_ira[g][0]); h=g+1; // PUEDE QUE TENGA MAS PARAMETROS EN LA LLAMADA A LA PAGINA... while (h<arcampos_ira.length){ if (arcampos_ira[h][2] == arnombres_campos[j]){ hay_mas = true; enlace1+="&" + arcampos_ira[h][1] + "=" + rs.getstring(arcampos_ira[h][0]); h++; if (hay_mas) g=h-1; enlace1+= strotrosparametros+ ">"; enlace2= "</a>"; g++; // SE EVITAN LOS NULOS EN LOS ENLACES if (enlace1==null) enlace1= ""; if (enlace2==null) enlace2= ""; // SE IMPRIME LA FILA CON EL VALOR strcadena+="<td><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextofilas+"'>" + enlace1 + rs.getstring(arnombres_campos[j]) + enlace2+"</font></td>"; strcadena+="</tr>"; contador++; while ( contador<=registros && rs.next() ); //SE IMPRIME LAS FUNCIONES DE AGREGADO try { if (arfagregados_campos.length>0) strcadena+=strcadenafa; Pág. 32 de 35
33 catch(exception j){ //PIE DE LA TABLA 1 --> PAGINA 1 DE n //************************************* if (bl_mostrar_paginaxdey){ strcadena+=" <tr> "; strcadena+="<td colspan='"+ artitulo_campos.length+1 +"' bgcolor='" +ColorPieTabla+"'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'>p\u00e1gina " + pagina + " de " + Total_Paginas+"</font></td>"; strcadena+="</tr> "; //PIE DE LA TABLA --> P\u00e1gina : n //********************************************************* if ((bl_mostrar_paginas) && (Total_Paginas >= pagina)) { strcadena+=" <tr> "; strcadena+="<td colspan='"+ artitulo_campos.length+1 +"' bgcolor='" +ColorPieTabla+"' align='center'><font size='"+strtamanoletra+"' face='"+strfaceletra+"' color='"+colortextoencabezadotabla+"'>" + strcadenapaginas + "</font></td>"; strcadena+="</tr> "; strcadena+="</table>"; strcadena+=" </td></tr></table>"; // *********************************************** // SE CALCULA SI HAY QUE PONER ANTERIOR Y/o SIGUIENTE // *********************************************** String StrNavegacion = ""; StrNavegacion+= "<table width='508' border='0' cellspacing='2' cellpadding='1' align='center'>"; StrNavegacion+= "<tr align='center'> "; if (RegistroActual >= registros + 1){ StrNavegacion+= "<td width='220'> "; StrNavegacion+= "<div align='right'><a href='"+que_pagina+"?actual="+string.valueof(registroactualregistros)+"&direccion=ant&orderby="+strorderby+strotrosparametros+"'> "; StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"' ><img src='images/back.gif' border='0' alt='"+registros+" registros anteriores'></font></a> </div>"; StrNavegacion+= "</td>"; else { StrNavegacion+= "<td width='220'>\u00a0\u00a0 </td>"; StrNavegacion+= "<td width='220'>\u00a0\u00a0 </td>"; if ( (contador - 1 < inttotalreg) && (RegistroActual == 1) ){ StrNavegacion+= "<td ' width='220'>"; StrNavegacion+= "<div align='left'><a href='"+que_pagina+"?actual="+string.valueof(registroactual+registros) +"&Direccion=Sig&orderby="+strOrderBy+strOtrosParametros+"'>"; Pág. 33 de 35
34 StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"'><img src='images/next.gif' border='0' alt='"+registros+" registros siguientes'></font></a> </div>"; StrNavegacion+= "</td>"; else { if (RegistroActual contador - 1 < inttotalreg){ StrNavegacion+="<td width='220'> "; StrNavegacion+= "<div align='left'><a href='" + que_pagina+"?actual="+string.valueof(registroactual+registros)+"&direc cion=sig&orderby="+strorderby+strotrosparametros+"'> "; StrNavegacion+= "<font size='"+strtamanoletra+"' face='"+strfaceletra+"' ><img src='images/next.gif' border='0' alt='"+registros+" registros siguientes'></font></a> </div>"; StrNavegacion+= "</td>"; else { StrNavegacion+= "<td >\u00a0 </td> "; StrNavegacion+= "</tr>"; StrNavegacion+= "</table>"; strcadena+=strnavegacion; else{ Hacer_CadenaNoDatos(); strcadena = strhtml_no_resultados; rs.close(); catch(exception e) { strmensaje_no_hay_resultados = "<P><b><font size='3' face='"+strfaceletra+"' color='#ff1111'>se ha producido el siguiente error:</font></b><p><font size='"+strtamanoletra+"' face='"+ strfaceletra + "' color='"+ ColorTextoEncabezadoTabla+"'>" + e + "</p>"; Hacer_CadenaNoDatos(); //strmensaje_no_hay_resultados = "<p><b>se ha producido un error:</b><p>"+e+"</p>"; strcadena = strhtml_no_resultados; e.printstacktrace(); return strcadena; Pág. 34 de 35
35 Consideraciones finales Resumen Como hacer paginación con JSP. En los primeros capítulos hemos dado un repaso a lo que es la paginación y el material necesario para crear las tablas y los datos, además de las imágenes necesarias. Posteriormente, nos hemos ido adentrando en cómo se crean las propiedades, funciones y la propia página Jsp que llama al Bean. Y como hemos visto al final, te he puesto el método Mostrar_Registros() que es el que desempeña la función principal de mostrar registros. Qué no hemos visto? Como mucho de vosotros ya sabeis, un método que se usa para hacer paginación de registros el método Absulte(), que permite posicionarle en un Statement, en algún registro determinado. Este método no se ha usado en este tutorial. Pág. 35 de 35
Copyright 2015 Pepa Cobos. Todos los derechos reservados.
Copyright 2015 Pepa Cobos. Todos los derechos reservados. Puedes imprimir una copia de este documento para tu uso personal. Excepto para ese fin, ninguna parte de esta publicación puede ser reproducida,
Más detallesPrograma diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.
Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.
Más detallesCómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?
Preguntas frecuentes Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes? Atención! Esta opción es de configuración y solamente la prodrá realizar el administrador de la
Más detallesObjetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.
Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios
Más detallesConstrucción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL.
Sistema de encuestas PHP y MySQL Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL. Sistema de encuestas. Base de datos a utilizar Algunas
Más detallesIntroducción a Moodle
Instituto la Américas de Nayarit Ing. Elías Portugal Luna Qué es Moodle? Moodle es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda
Más detallesManual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib
Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico
Más detallesCOMO CREAR UNA PÁGINA WEB 3-VÍNCULOS. IMÁGENES. FORMULARIOS.
2011 2012 COMO CREAR UNA PÁGINA WEB 3-VÍNCULOS. IMÁGENES. FORMULARIOS. WWW.FAUBELL.COM vicente@faubell.com VÍNCULOS: Antes de proseguir hemos de repasar el concepto vínculo ya que vamos a utilizarlo mucho
Más detallesTEMA 9 CREACIÓN DE PÁGINAS WEB
TEMA 9 CREACIÓN DE PÁGINAS WEB OBJETIVOS Conocer las páginas web y sus elementos. Insertar tablas, capas, enlaces en las páginas web. Crear páginas web con NVU. Crear un sitio web. Configurar un sitio
Más detallesGUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE
ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19
Más detallesBANNERS CÍCLICOS CON JAVASCRIPT
BANNERS CÍCLICOS CON JAVASCRIPT ÍNDICE 1. INTRODUCCIÓN. 2. BANNERS CÍCLICOS. 2.1.BANNER CÍCLICO. 2.2.BANNERS CÍCLICOS CON CAMBIO DE COLOR DEL FONDO DE LA PÁGINA. 2.3.AÑADIR VÍNCULOS A LOS BANNERS CÍCLICOS.
Más detallesObjetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Más detallesMANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS
MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS En este manual aprenderemos a introducir un Ticket de Soporte (Incidencia Informática) y ver todo el proceso hasta que se resuelve. Para poder escribir Tickets
Más detallesCurso Excel Básico - Intermedio
Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos
Más detallesManual de NVU Capítulo 4: Los enlaces
Manual de NVU Capítulo 4: Los enlaces Pág. 1 Manual de NVU Capítulo 4: Los enlaces Reconocimiento-NoComercial-CompartirIgual 2.5 España Realizado por: Julio Ruiz Palmero (Universidad de Málaga) julioruiz@uma.es
Más detallesGENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)
APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha
Más detallesIntroducción a PHP. * No es necesario declarar previamente las variables.
Introducción a PHP La programación de sitios web cada día está más orientada al desarrollo de páginas dinámicas y aplicaciones, o sea sitios donde el usuario pueda interactuar con la web. Dentro de los
Más detallesGESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Más detallesMINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007
MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 Servicio de Informática y Comunicaciones Para poder diseñar un formulario y que éste nos envíe los resultados a nuestro correo electrónico, necesitamos
Más detallesPHP Perfect SQL v1.0 (SQL perfectas en PHP)
PHP Perfect SQL v1.0 (SQL perfectas en PHP) Muchas veces cuando programamos para web es muy fácil cometer errores en la construcción sintáctica de consultas SQL, por ejemplo cuando tenemos que realizar
Más detallesAgosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ]
Agosto 09 Un primer JSP Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Un Primer JSP Guía rápida Este documento te guiará por los primeros pasos para desarrollar
Más detallesLa ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
Más detallesCurso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Más detallesCreando una webquests
Creando una webquests 1. LO PRIMERO EL PROGRAMA Para crear paginas web necesitamos el software apropiado. Hay muchas formas y programas para hacerlo, pero por su facilidad de uso y por ser software libre
Más detallesPASOS PARA CREAR UNA PÁGINA WEB
http://www.rafatux.com PASOS PARA CREAR UNA PÁGINA WEB Con éste documento trato de orientar de una forma genérica los distintos pasos que deben de realizarse para crear una página web. PRIMER PASO: Estructura
Más detallesTutorial Básico de vbscript
Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así
Más detallesCorreo Electrónico: Webmail: Horde 3.1.1
CONTENIDOS: PAGINA Qué es Webmail?. 2 Acceder a Webmail. 2 Instilación del Certificado UCO. 4 Instilación Certificado I.explorer. 4 Instilación Certificado Firefox. 7 Opciones Webmail. 8 Opciones Información
Más detallesNOTA:Necesario verificar el nombre de nuestro Servidor-Equipo en donde está nuestro sistema gestor de base de datos.
Instrucciones para corrección del error conexión PHP-SqlServer Como habíamos platicado en clase, les comente acerca de la conexión posible de SQL Server mediante un script de PHP, en este caso solo lo
Más detallesTEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín
TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,
Más detallesUNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS
UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos
Más detallesMANUAL DE AYUDA MODULO TALLAS Y COLORES
MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesCombinar correspondencia (I)
Combinar correspondencia (I) Mediante la opción Combinar correspondencia Word2007 nos permite incluir en un documento, datos almacenados en otro sitio. De esta forma podremos obtener copias de un mismo
Más detallesToda base de datos relacional se basa en dos objetos
1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.
Más detallesFilezilla: Qué es y para qué sirve un cliente FTP
Filezilla: Qué es y para qué sirve un cliente FTP Básicamente, y sin utilizar palabras ni lenguaje técnico, un cliente FTP es un programilla que nos permite conectarnos desde nuestro ordenador, a un servidor
Más detallesTutorial de manejo de los portafolios de objetivonatural.com. Bienvenidos a Portafolios.objetivonatural.com
La revista objetivonatural.com presenta su nuevo apartado" Portafolios objetivonatural.com ", con ello pretendemos que todos los usuarios de nuestra revista puedan disponer de un sitio web personal, fácil
Más detallesMANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...
Más detallesEl control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.
Gestión de la tesorería y del riesgo El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. En este manual nos
Más detallesUSANDO SERVLETS EN UN SERVIDOR WEB RESIN
USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el
Más detallesCONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes
Más detallesConfigurar protección infantil en Windows XP
Configurar protección infantil en Windows XP Web de la asociación española de pediatría En la web de la asociación española de pediatría podemos encontrar un link al site que han montado junto a Microsoft
Más detallesDesarrollo de Servicios Web con JBuilder
Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo
Más detallesSISTEMA DE ENCUESTAS CON PHP Y MYSQL
SISTEMA DE ENCUESTAS CON PHP Y MYSQL Objetivo: Trabajar con MySQL, Base Datos y Tablas Trabajar con Librería de Conexión, INCLUDE Generar un grafico de columnas con Codigo PHP I. CREAR LA BASE DE DATOS:
Más detallesLas propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.
EJERCICIO GUIADO. JAVA: VARIABLES GLOBALES Variables Globales / Propiedades de la Clase Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el
Más detallesAGREGAR COMPONENTES ADICIONALES DE WINDOWS
INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución
Más detalles15 CORREO WEB CORREO WEB
CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,
Más detallesInternet Information Server
Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en
Más detallesManual de NetBeans y XAMPP
Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación
Más detallesMS ACCESS BÁSICO 6 LOS INFORMES
2010 MS ACCESS BÁSICO 6 LOS INFORMES 93 LOS INFORMES Los informes son una herramienta de Access para elaborar información, sobre los datos que deseemos, preparada para ser impresa. A partir de una base
Más detallesConciliación bancaria en CheqPAQ Cargado de estado de cuenta
Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición
Más detallesLaboratorio 8. Hojas de estilo, plantillas y bibliotecas en Dreamweaver
UNIVERSIDAD CARLOS III DE MADRID. ESCUELA DE TURISMO. Informática aplicada al sector turístico Laboratorio 8. Hojas de estilo, plantillas y bibliotecas en Dreamweaver En esta práctica guiada vamos a ver
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesParsear HTML con htmlparser para Android Guillem Pérez
Parsear HTML con htmlparser para Android Guillem Pérez He escogido esta librería(http://htmlparser.sourceforge.net/) aunque no había muchos ejemplos porque la he visto realmente ligera y esta en java hay
Más detalles1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?
Google Docs 1 Itinerario 1.1 Qué vamos a hacer? En este tutorial aprendemos a manejar la herramienta Google Docs, de esta forma nos introduciremos en el llamado cloud computing, que podemos traducir como,
Más detallesGUÍA RED SOCIAL FACEBOOK
GUÍA RED SOCIAL FACEBOOK Qué es una Red Social? Una Red Sociales un sitio en internet donde compartir información, mensajes, ideas, fotos, etc., con amigos, conocidos y desconocidos. Para acceder a una
Más detallesLa elección de Blogger como la plataforma o lugar donde
1. INTRODUCCIÓN La elección de Blogger como la plataforma o lugar donde alojar nuestro blog es adecuada si no deseamos complicarnos con la instalación de un servidor propio, con todo lo que ello conlleva:
Más detallesSintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;
7. CONCEPTOS AVANZADOS DE CURSORES EXPLICITOS En este capítulo veremos algunas cosas bastante útiles respecto a los cursores explícitos, como pueden ser los cursores con parámetros (que nos permitirán
Más detallesMÓDULO 3 HERRAMIENTAS EN LA NUBE: ANFIX
MÓDULO 3: TEMA 1 INTRODUCCIÓN Hemos elegido esta herramienta, por su sencillez de acceso a través de la web, es bastante fácil e intuitiva, tan sólo tienes que registrarte, confirmar tu cuenta y ya puedes
Más detallesTenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.
TUTORIAL INCEME Programas necesarios PC s usuarios En los ordenadores donde se va a ejecutar INCEME van hacer falta una serie de programas para su funcionamiento. Tendremos que tener los.net Framework
Más detallesLa plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.
PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación
Más detallesCONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.
CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia
Más detallesAGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7
Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos
Más detallesEl proceso de edición digital en Artelope y CTCE
El proceso de edición digital en Artelope y CTCE Carlos Muñoz Pons Universitat de València carlos.munoz-pons@uv.es Introducción Una de las cuestiones más importantes a la hora de trabajar en proyectos
Más detallesManual de iniciación a
DOCUMENTACIÓN Picasa y otras nubes Manual de iniciación a DROPBOX 1 Últimamente se ha hablado mucho de la nube y de cómo es el futuro de la Web. También se han presentado servicios y aplicaciones que ya
Más detallesGMAIL (avanzado) 1. Accede a la web de Gmail, www.gmail.com. Te destacamos las funcionalidades que vamos a enseñarte a. 2. Vamos a enseñarte a:
Sabes que puedes hacer muchas más cosas que enviar y recibir correo con Gmail? Puedes organizarlo, crear reglas de correo, filtrar correo, organizar contactos Adriana va a enseñar a su padre cómo aprovechar
Más detallesComo verás pone Microsoft Office y si te colocas sobre esta línea debería salir:
:: Introducción: Microsoft dispone de un conjunto de herramientas llamado Office que se compone de todo lo necesario para resolver cuantos problemas se presenten en los trabajos propios de cualquier usuario
Más detallesGuía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica
Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica HOJA DE CONTROL Título Nombre del Fichero Autores Guía rápida de la Oficina Virtual (Solicit@V5) UHU_GuiaRapidaSolicita_V5.pdf
Más detallesCASO PRÁCTICO DISTRIBUCIÓN DE COSTES
CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que
Más detallesCómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia
Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,
Más detallesGracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.
COMO FUNCIONA INTERNET Internet es una gran red de ordenadores a nivel mundial, que pueden intercambiar información entre ellos. Se pueden comunicar porque están unidos a través de conexiones telefónicas,
Más detallesMarketing y Estadística 1. 2. 3. 4. Listados de clientes con selección de criterios Generación de Cartas, SMS y Etiquetas Estadísticas Avanzadas, GIO BI Gestión de Avisos 1. Listados de clientes con selección
Más detallesTutorial del administrador de la web del departamento
Tutorial del administrador de la web del departamento Antes de leer este tutorial, debes leer el tutorial del profesor. Observa que en la parte inferior de la página de INICIO de tu departamento aparece
Más detallesINSTALACIÓN DE MEDPRO
1 Estimado Cliente: Uno de los objetivos que nos hemos marcado con nuestra nueva plataforma de gestión, es que un cliente pueda instalar MedPro y realizar su puesta en marcha de forma autónoma. Siga paso
Más detallesManual de adminitración web www.accioncosteira.es
Manual de adminitración web www.accioncosteira.es Manual de administración Accioncosteira.es Contenidos 1. Presentación de la página...3 2. Tipos de contenido...5 2.1. Tipos de contenido...5 2.2. Categorías...5
Más detallesCITRIX 4.5 - Citrix Application Streaming
1 de 39 01/12/2007 1:06 CITRIX 4.5 - Citrix Application Streaming Es la caracteristica principal de la versión 4.5 de Citrix, el Application Streaming, en este documento se explica cómo usarlo. Application
Más detallesUnidad Didáctica 12. La publicación
Unidad Didáctica 12 La publicación Contenido 1. Desarrollar y explotar 2. Definición del Sitio 3. Alojar nuestra primera página Web 4. Configurar la conexión FTP U.D. 12 La publicación 1. Desarrollar y
Más detallesLectura No. 3. Contextualización. Nombre: Página web DISEÑO DIGITAL 1. Para qué te sirve saber elaborar una página web?
Diseño Digital DISEÑO DIGITAL 1 Lectura No. 3 Nombre: Página web Contextualización Para qué te sirve saber elaborar una página web? A través de una página web puedes atraer a una mayor cantidad de clientes
Más detallesCurso Internet Básico - Aularagon
Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla
Más detallesImplementación de widgets Avaibook en Blogger
Implementación de widgets Avaibook en Blogger Introducción Blogger es un sistema de blogs como cualquier otro. Permite la publicación de entradas, páginas, etc. Mucha gente lo utiliza como página web personal
Más detallesCómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO
Cómo registrarse y crear su cuenta de usuario? Si es la primera vez que visita la página, y nunca ha creado un usuario para poder acceder a todos los servicios que el sistema ofrece, deberá registrarse
Más detallesUTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico
Acceso al correo electrónico Pasamos ahora a lo que sería usar la cuenta de correo que nos hicimos en la clase anterior. Lo primero que hacemos es entrar en la página web de Yahoo y localizar el icono
Más detallesManual de Instalación y uso de FTP
Manual de Instalación y uso de FTP Que es el FTP? El FTP es un sistema que nos permite de forma cómoda subir o bajar archivos a otra ubicación. Hay FTP públicos y privados, es decir en algunos todo el
Más detallesMarta Soler Tel: 902 33 12 12 Fax: 93 352 36 14 http://www.interdigital.es acc@interdigital.es TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE
. Marta Soler Tel: 902 33 12 12 Fax: 93 352 36 14 http://www.interdigital.es acc@interdigital.es TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE El entorno de trabajo La página tiene como base una plantilla
Más detallesGuía de instalación de la carpeta Datos de IslaWin
Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3
Más detallesCapítulo 0. Introducción.
Capítulo 0. Introducción. Bueno, por fin está aquí el esperado (espero!!) Capítulo Cero del Tutorial de Assembler. En él estableceremos algunos conceptos que nos serán de utilidad a lo largo del Tutorial.
Más detallesLAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en
Más detallesCrear la base de datos antes de la instalación de Wordpress.
Introducción En este tutorial básico sobre instalar Wordpress en tu propio hosting mediante un panel de control cpanel y aprenderás como personalizar las bases de datos MySQL que utiliza Wordpress. Para
Más detallesJavaScript toma su sintaxis de los lenguajes de programación más conocidos, fundamentalmente C/C++, aunque también algo de Pascal.
1 JavaScript 1.1 Qué es JavaScript? JavaScript es un lenguaje interpretado. Es idóneo para trabajar en Web, ya que son los navegadores que utilizamos los que interpretan (y por tanto ejecutan) los programas
Más detallesTutorial 1: Creación de páginas web con Editor HTML de OpenOffice
Tutorial 1: Creación de páginas web con Editor HTML de OpenOffice Nota: el propósito del curso no es aprender a elaborar páginas web complejas. Por eso, únicamente vamos a aprender a manejar ocho procedimientos:
Más detallesIntroducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos
Plataforma Moodle Accediendo a los contenidos Formatos ----------------------------------------------------------------------- 2 Glosarios -----------------------------------------------------------------------
Más detallesInstalar y configurar W3 Total Cache
Instalar y configurar W3 Total Cache en WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La velocidad de carga de una web influye mucho a la hora de mejorar el
Más detallesGuía de uso del Cloud Datacenter de acens
guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar
Más detallesColegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS
Colegio de Ingenieros de Caminos, Canales y Puertos. Manual de Gestión de correo electrónico y SMS Versión 2.0 3/05/2010 Manual de Gestión de correo electrónico y SMS (v 2.0) 1 GESTOR DE CORREO ELECTRÓNICO
Más detallesLa pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.
Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en
Más detallesPara trabajar este tema vamos a situarlo un poco más en el lenguaje común:
Curso de Internet a distancia para sacerdotes, religiosos y religiosas Material de apoyo para las teleclases - Viernes,18 de noviembre2011 Vea los vídeos resúmenes en: www.medioscan.es y www.teleiglesia.es
Más detallesAgradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal
Karel para todos! 1 Estás interesado en aprender a programar en lenguaje de Karel? Te interesa la Olimpiada Mexicana de Informática? Esta es tu oportunidad de unirte al equipo OMI y ser parte de la mejor
Más detallesManual para la utilización de PrestaShop
Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para
Más detallesPráctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP
Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero
Más detalles