Java – Un resumen organizado….o no.

Llevo escribiendo artículos sobre Java, programación  de Java, entorno de Java… demasiado tiempo, y como ahora estoy preparando un curso de dicho tema, se me ha ocurrido hacer una especie de indice de lo que llevo publicado para que tanto vosotros como yo, podamos acudir a un tema concreto. Esto también me ha permitido detectar duplicados y faltas, por lo que deberé seguir ampliando la colección…. en cuanto pueda, incluso darle formato de libro…..ya veremos; de momento os dejo este indice Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

PHP – Presentacion del curso

Mucho tiempo ha pasado desde que en 1994 se le ocurrió a Rasmus Lerdof «inventar» un lenguaje para la creación de sitios webs dinámicos, y como era una especie de pequeña herramienta para construir HTML, lo llamo PHP (PHP Hipertext preprocesor), y supongo que no llego a pensar en la importancia que tendria unos años mas tarde ese lenguaje. Pero aquí estamos, y hoy nos costaría mucho imaginarnos la web sin su existencia. Cierto es que hay otros lenguajes de servidor, pero PHP es el mas barato y, hoy por hoy el mas extendido, de forma que vamos a ver como se escribe un programa en él. Sigue leyendo

Publicado en Desarrollo Web, PHP y MySQL/MariaDB | 2 comentarios

Tu máquina de desarrollo. Instalando LAMP

Días atrás, os explicaba como instalar un servidor web en vuestra maquina de desarrollo bajo windows. Como poco a poco Linux penetra en nuestro mundo, hoy os comento como instalar un servidor web en vuestra maquina Linux: LAMP. Sigue leyendo

Publicado en Desarrollo Web, Linux | Etiquetado , , , , , | 1 comentario

HTML5 – Presentacion

Desde 1998 en que finaliza el desarrollo de HTML (4.0) han venido sucediéndose una serie de operaciones para establecer un nuevo estándar web. El XML primero, y su consecuente XHTML fue una buena apuesta, pero su posible sucesor el XHTML 2.0, cuyo desarrollo se abandona a finales del 2009, fue un fracaso. Eso obliga al W3C a buscar un nuevo camino, y lo encuentra retomando un trabajo iniciado por WHATWG  (Mozilla, Opera, Apple, Google…) sobre 2004 como variante a la linea de W3C.

Con todo ello, se anuncia en 2012 la recomendación candidata de Html5 y se prevee para 2020 la recomendación final.

En el curso que empezamos hoy, vamos a explicar que es HTML5HTML5_logo_and_wordmark.svg Sigue leyendo

Publicado en HTML5 | Etiquetado , | 1 comentario

Monta tu propio WordPress….y gratis

Si estáis decididos a probar suerte como webmaster con todas sus consecuencias, os invito a que probeis a instalar un wordpress en tu propio servidor. WordPress es gratuito, luego, si eso lo combinamos con un hosting gratuito…tendremos una interesante plataforma para aprender. Sigue leyendo

Publicado en Desarrollo Web, Divulgacion, Empezando en, WordPress | 3 comentarios

Macros de Excel

Con éste artículo, iniciamos una colección dedicada a la utilización de las hojas de cálculo de Microsoft Excel, y, más concretamente, a la forma que tiene este producto de solucionar y simplificar las tareas repetitivas. Debido a que estos artículos los voy escribiendo a medida que me surge la necesidad, he empezado por una parte de la formación Excel, bastante avanzada, sin embargo, y debido que su aprendizaje tiene mucho mas que ver con la programación que con Excel, pienso que se puede aprender de forma paralela a cualquier otro curso de Excel medio, y ya dejo claro que me comprometo a escribirlo… algún día. Que sea mas pronto o mas tarde, dependerá del trabajo, y de las necesidades de los lectores.

Sigue leyendo

Publicado en Excel, Formacion | Etiquetado , , | Deja un comentario

Debian con VirtualMin en Oracle VirtualBox (y 2)

En el anterior articulo, vimos como instalar VirtualBox para poder virtualizar equipos, y tambien, como instalar un servidor Debian 8 dentro de una virtualización. En este articulo, veremos como instalar Virtualmin y los programas de gestión de correo electrónico, Base de datos y un Firewall muy efectivo Sigue leyendo

Publicado en Formacion, Linux, Maquinas Virtuales | Etiquetado , , | Deja un comentario

Debian con VirtualMin en Oracle VirtualBox

Hace mucho tiempo que deje atrás lo de explicar como instalar Debian, pero estos días, y, debido a un problema que estoy teniendo con los permisos de directorio en un servidor que tengo en produccion, he pensado en instalar una maquina virtual, y quizas, que seria una buena idea compartir este proceso con mas gente, por si puede ayudar a alguien.

Asi que, en esta entrada instalare, dentro de un VirtualBox una maquina Debian, con Virtualmin; asi, podre hacer las pruebas de forma local, y dentro de mi maquina de sobremesa, en la que corre W10; si os interesa, ya lo sabeis, seguirme!

Sigue leyendo

Publicado en Desarrollo Web, Empezando en, Formacion, Instalar linux, Linux, Maquinas Virtuales | Etiquetado , , , | Deja un comentario

Empezando a trabajar en Angular

Parece que ha pasado mucho tiempo desde que allá por el 2009 un tal Miško Hevery presentara un producto alternativo a jQuery y que nos permitía simplificar nuestros desarrollos… , y si, ha pasado mucho tiempo y muchas versiones, ya que ese producto empezó a ser realmente útil a partir de 2016, en que se presento la primera version de Angular2, y que pudo empezar a llamarse Angular.

Ahora, y después de terminar de impartir un curso, trabajando con la version 8 de dicho Framework, creo que ha llegado el momento de escribir un poco sobre el tema, y como inicio, quiero comentaros las ventajas e inconvenientes que he encontrado en este producto Sigue leyendo

Publicado en Angular, Empezando en, Formacion, Javascript, Typescript | Etiquetado , | Deja un comentario

Servlets: Atributos de petición, sesión, aplicación y cookies

Durante la programación de una aplicación web nos encontramos que tenemos necesidad de conservar el valor de las variables. En una aplicación de escritorio, podemos controlar cuando queremos borrar una variable, por lo que no aparece ese problema, pero en una aplicación web, el tema es bastante mas delicado. Recordemos que el protocolo http no esta orientado a sesion, eso hace que en cada conexion TODOS los datos que tengamos a mano, sean nuevos. Nuestro servidor, no recordara nada acerca de si ese cliente se ha conectado hace un momento, o no se ha conectado nunca. Se ha logonado o no, …. Sigue leyendo

Publicado en Desarrollo Web, Formacion, Java | Etiquetado , , | Deja un comentario

Complicando un poco nuestro servlet.Trabajando con formularios

Cuando hayamos conseguido que nos funcione el servlet, querremos conseguir mostrar un formulario, y recogerlo; y para hacer todo eso correctamente, vereis que dentro de poco, os volvere a hablar de «vistas», pero mientras tanto, vamos a hacer que nuestro servlet presente un formulario, y cuando se envie, lo recojamos y procesemos….

Sigue leyendo

Publicado en Desarrollo Web, Formacion, Java | Etiquetado , , | Deja un comentario

Linux y los ficheros Swaps

Si buscamos en la historia, podemos encontrar que veíamos a Linux como el S.O. que podía correr en cualquier maquina, por pequeña que fuera; hablábamos de CPUs Pentium 5, son 1Gb máximo de memoria; en aquella época, el trabajar con ficheros swaps, era una necesidad, después nos fuimos animando a utilizarlo con maquinas mayores, y llegamos a la conclusión que el swap lo hacia mas lento…y ahora?…volvemos a ello?

Sigue leyendo

Publicado en Formacion, Linux | Etiquetado , , | 3 comentarios

Complicando un poco nuestro servlet. web.xml

Tras ver como funciona nuestro primer servlet, el siguiente paso que vamos a dar, para conocer un poco mas estas herramientas es controlar las rutas de acceso por medio de web.xml.

Estoy de acuerdo que la introducion de anotaciones, ha hecho nuestra vida mas sencilla, pero no evita el tener que utilizar web.xml, no solo para los mappings de las clases, si no , tambien para la carga de parametros en las mismas.

Sigue leyendo

Publicado en Desarrollo Web, Formacion, Java, Sin categoría | Etiquetado , , , | Deja un comentario

Empezando con servlets

En nuestra aplicacion web, nos vamos a encontrar con varios entornos; en estos articulos, orientados al mundo Java, nos vamos a preocupar de los relacionados con ellos.

Segun eso, si vas a escribir una aplicacion web en Java, te encontraras con las clases de Java que ya conoces, con Servlets y con JSPs

En este articulo, vamos a hablar de los servlets. Los servlets son clases de Java mas o menos tradicionales, pero que heredan de una clase muy concreta (HttpServlet) con lo que van a tener acceso a las variables web, como puede ser la linea de URL. y seran instanciadas por el contenedor, y llamadas en un metodo concreto…. vamos por partes. Sigue leyendo

Publicado en Desarrollo Web, Formacion, Java | Etiquetado , , , | Deja un comentario

Instalacion de un contenedor web (Tomcat)

Segun hemos visto anteriormente, para poder desarrollar una aplicacion web con Java, necesitamos un contenedor web.

Somos desarrolladores, con lo que vamos a seleccionar uno que no sea excesivamente pesado, y que podamos instalar en nuestras maquinas de desarrollo.

Uno de los que cumplen ampliamente con nuestros requerimientos, es Tomvcat, que ademas a ser parte del desarrollo de Apacyhe, es totalmente integrable en el mismo, con lo que nos ofrece muchas posibilidades.

La imagen en la que debemos pensar, viene a ser esta:

Esta es la definicion de wikipedia:

Apache Tomcat (también llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServerPages (JSP) de Oracle Corporation (aunque creado por Sun Microsystems).

Tomcat es un contenedor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache.

Tomcat puede funcionar como servidor web por sí mismo. En sus inicios existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. Hoy en día ya no existe esa percepción y Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.

A continuacion, vamos a ver como lo podemos instalar

  • Descargar de su web
  • Para Windows, podemos escoger un instalador

Después, podemos ir indicando “next”, ….”next”, y solo prestar atención a esta pantalla.

En este caso, nos indica que Tomcat estará en el puerto 8080

Como muchas veces este puerto esta ocupado, propongo que lo cambiemos a 9090

El resto de opciones, no necesitamos modificarlas

Con la siguiente confirmacion, acabara la instalacion, podemos decir que queremos que lance Tomcat

A continuacion, podemos abrir un navegador y escribir como direccion

A continuacion, podemos abrir un navegador y escribir como direccion

http://localhost:9090 y veremos la respuesta de Tomcat

Con esto ya sabemos que Tomcat está instalado y funcionando, veamos la estructura:

Dejando aparte el tema de versiones, esta sera la forma que adoptara en nuestro disco, veamos ahora que puede contener cada carpeta:

bin – arranque, cierre, y otros scripts y ejecutables.

conf – ficheros XML y los correspondientes DTD para la configuración de Tomcat.

logs – logs de Catalina y de las aplicaciones.

webapps – directorio que contiene las aplicaciones web. Aqui podemos dejar los WAR

work – almacenamiento temporal de ficheros y directorios.

Con esto, ya esta finalizada la instalacion de Tomcat, ahora, si vosotros, como yo, vais a utilizar Eclipse para el desarrollo del web, creo que es conveniente que sigamos unos pasos mas, para integrar Tomcat en nuestro IDE, y poder trabajar sin preocuparnos del mismo.

Integración con Eclipse

Nos interesa detenerlo para hacer que el arranque y parada lo gestione Eclipse; para ello, debemos buscar un programa que se ha instalado que es “Monitor Tomcat”

Al arrancarlo, se inicia minimizado por lo que lo tendremos que ir a buscar en la bandeja de sistemas o área de comunicaciones

Al abrirlo…

Pulsamos Stop, y Aceptar.

Lo paramos, porque si queremos controlarlo desde Eclipse, lo mejor es que podamos encerderlo/apagarlo desde alli, por lo que preveemos que fuera de Eclipse, no se este ejecutando; a continuación, abrimos Eclipse

Seleccionamos Window > Preferences

y alli, Runtime Environment y “Add”

Seleccionamos en función de la versión instalada y “Next”

Deberemos indicar la carpeta en donde se instaló Tomcat

Tras esto, indicamos Finish y OK

Para poder verlo y controlar, podemos activar la ventana Server

Nos aparece la pestaña correspondiente a Servers

Y podemos crear el servidor, pulsando en el enlace

Como ya definimos todo, nos aparece configurado el servidor

Nos bastara con indicar “Finish” para que nos aparezca el servidor en su ventana y podamos controlarlo

Otra forma de conseguir la ventana de Servers, seria activar la Perspectiva Java EE

De esta forma, dejaremos Eclipse preparado para crear Dynamic Web Project, cosa que haremos pronto.

Publicado en Desarrollo Web, Formacion, Java | Etiquetado , , , | Deja un comentario

La aplicacion Java

Si habeis llegado a este punto, supongo que os he convencido de las ventajas de realizar una aplicacion en Java

El siguiente paso, es ver, como enviamos nuestro trabajo a un servidor web…la cosa no va a ser tan sencilla como subir nuestro directorio de trabajo,… pero tampoco mucho mas complicada

Formato de despliegue de una aplicación

Según hemos visto antes, una aplicación web desarrollada en Java va a estar compuesta de

  • Ficheros JSP
  • Servlets
  • Clases Java
  • Recursos varios como imágenes, ficheros Javascript, HTML, CSS, ….

Para entregar a producción el trabajo (Desplegar),debemos organizar todos los ficheros


Ficheros JAR

Hasta ahora, para entregar una aplicación Java, generábamos un fichero JAR, en ese fichero se guardaban Clases y Librerías de apoyo

Como en JAR solo había clases java, básicamente, el JAR era un fichero comprimido del directorio en donde se encontraban las clases

  • Permite agrupar distintos archivos java en uno solo.
  • Sigue el formato ZIP
  • Incorporado en la versión 1.1 del JDK
  • Contienen:
    • Clases java
    • Recursos que emplean las clases
  • Es el empleado para empaquetar componentes EJBs, respetando una estructura de directorios


Ficheros WAR

Para entregar una aplicación web, utilizaremos un fichero WAR, capaz de contener todos sus componentes.

  • Servlets y JSPs
  • Contenido estático
    • Html,Imágenes,etc.
  • Otros recursos web

En el WAR, además de las clases, deben ir ficheros descriptores, librerías de apoyo,…por lo que antes de la compresión, deben estructurar la información, siguiendo la siguiente imagen

Hemos de aclarar que los IDEs habitualmente, ya disponen de las herramientas para generar el fichero, y se encargan de la organización de la información.

Ficheros EAR

Archivos desplegables en servidores de aplicaciones JEE

Contienen

  • Archivos WAR
  • EJBs (Empaquetados dentro de ficheros JAR)

Descriptor de despliegue

El descriptor de despliegue se trata de un fichero XML en donde se dan instrucciones al contenedor, acerca de las clases que entregamos, como se han de comportar, y cualquier información necesaria para el funcionamiento de la aplicación, (datos para la conexión a BBDD, …)

En nuestro entorno, será el fichero web.xml que estudiaremos mas adelante

Contenedores y servidores de aplicaciones

Hemos de pensar que una clase java, asi, por las buenas, no es capaz de ser sensible a una direccion web, esto es, no podra ser arrancada desde una URL

Ademas, ya hemos ido comentandoo que el cumplir con la interfaz EJB nos aporta un monton de soluciones a los problemas de programacion

Para que todo eso sea cierto y se pueda cumplir, deberemos introducir nuestras clases en un contenedor que las maneje. Este contenedor lo podriamos ver de la siguiente forma:

Ese contenedor, creado para las gestion de componentes, puede cumplir con nuestros objetivoc

  • Un contenedor es un proceso donde se ejecutan los componentes
  • Provee un ambiente estandarizado de ejecución que provee servicios específicos a componentes
  • Se encarga de implementar todas las especificaciones del API, además de proveer servicios, para el manejo y ejecución de componentes web, tales como servlets, JSPs, filters, listeners, etc..
  • Poseen acceso a sistemas de información empresarial (RDBMS, JDBC, etc.)
  • Gestiona los componentes de la aplicación
    • Ciclo de vida
  • Proporciona acceso a servicios de la plataforma
    • Seguridad, transacciones, persistencia, conectividad, etc.
  • El desarrollador tiene que especificar
    • Los componentes de la aplicación
      • Servlets
      • JSPs (JavaServer Pages)
      • JSFs (JavaServer Faces)
      • EJBs (Enterprise Java Beans)
    • Los descriptores de despliegue (deployment)
      • Ficheros XML que describen los componentes de aplicación

Los contenedores también poseen acceso a sistemas de información empresarial (RDBMS, JDBC, etc.)

Los contenedores, naturalmente los encontraremos la mayoria de las veces, como servidores de aplicaciones, y en algunos casos, orientados unicamente a la web, a continuacion ponemos un ejemplo de lo que hay en el mercado

Servidores de aplicaciones

Son programa que proveen la infraestructura necesaria para las aplicaciones empresariales

  • Contenedores EJBs
    • Jboss
  • Contenedores Web
    • Tomcat
  • Servidores de aplicaciones completos
    • Weblogic
    • IBM WebSphere
    • Caucho Resin
    • JOnAS (Open Source Jee app. Server).
    • iPlanent
    • Orión – OC4J
    • Jboss + Tomcat
    • Glassfish…

Y si queremos tener una idea aproximada de su popularidad….

Realmente, Tomcat nació como un servicio de Apache pensado para entornos de desarrollo, y es el contenedor que vamos a usar en nuestras pruebas, a partir del proximo articulo en que lo instalaremos,

Ultimamente, Tomcat ha pasado a ser un contenedor Web muy util en produccion, y con eso ha terminado de expandir su popularidad

Publicado en Desarrollo Web, Formacion, Java | Etiquetado , , | Deja un comentario