Artículos
Java

Mi primera JSP

Creado: 14/Ene/2008 Actualizado: 09/May/2024

Para crearnos mi primera JSP los conceptos de programación que debemos de tener son mínimos. Lo primero que debemos de saber es que cada página JSP nos generará normalmente una página HTML. Es por ello que solemos tener una página HTML que incluye islas de código Java. Esta mezcla acaba componiendo nuestra JSP.

Dentro de las islas de código podemos ayudarnos de las herramientas que nos ofrece el lenguaje Java. Por ejemplo podemos manejar fechas, accesos a bases de datos, a otros sistemas,…

Asumiendo que nuestro documento JSP es una página HTML con toda su estructura en la cual se encuentra entremezclado el código Java. Cuando queramos introducir código java lo haremos entre los símbolos <% y %>.

<!DOCTYPE html>
<html>
<head>

<title>Mi Primer JSP</title>
</head>
<body>
<h1>Mi Primer JSP</h1>

<% // Código Java %>

</body>
</html>

Para volcar algún contenido Java en la página usaremos la función:

<% out.println("Texto a insertar en la página"); %>

Aunque, si no tiene más código Java, podemos sustituirlo por un pequeño trozo de código como el siguiente:

<%= "Texto a insertar en la página" %>

Donde el out.println se ha sustituido por el símbolo igual.

Por último, deberemos saber que el fichero hay que guardarlo con la extensión .jsp

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
SVG

Dibujando un polígono: triángulo

Creado: 13/Ene/2008 Actualizado: 07/Feb/2021

En este ejemplo vamos a ver los pasos necesarios para poder pintar un Triángulo en SVG utilizando el elemento POLYGON. Para ello lo único que necesitamos conocer los vértices de nuestro polígono.

El polígono elegido es un Triángulo. Como su nombre bien dice, tendremos tres lados y consecuentemente tres vértices que tendremos que indicar al elemento POLYGON para que este se pueda pintar.

Los vértices de nuestro polígono son indicados mediante el atributo points. Para ello bastará dar las coordenadas de los puntos. Estas separadas entre comas y a su vez, cada coordenada, separada por un espacio.

Las coordenadas elegidas para nuestro Triángulo son: (100,100) (100,200) y (200,200). La etiqueta nos quedará de la siguiente forma:

<polygon points="100,100 100,200 200,200"/>

En cuanto al coloreado del polígono tendremos que recurrir al atributo fill. Mediante el cual, y utilizando un nombre, indicaremos el color de relleno del Triángulo

<polygon points="100,100 100,200 200,200" fill="red">

Otra de las cosas que podemos modificar es el borde del Triángulo Para poder llevar a cabo esto utilizamos los atributos stroke para indicar el color del borde y stroke-width para indicar su tamaño.

<polygon stroke-width="10" stroke="green"/>


Visualizar el ejemplo
| Descargar el código

Artículos
Java

Obtener la IP que invoca al servlet

Creado: 12/Ene/2008 Actualizado: 09/May/2024

Mediante el siguiente código podremos recuperar la IP del usuario que está realizando la petición sobre el Servlet. Dadas todas las circunstancias que pueden rodear a la topología de las redes la IP que obtendremos no tiene porque ser la IP del usuario final, sino que fácilmente podría ser la IP de un proxy intermedio,… Es por ello que el ejemplo hay que utilizarle con fines didácticos y si lo usamos para producción, con un gran cuidado.

La IP de la máquina que invoca es una información que al servlet le llega en la petición, consecuentemente sus métodos doGet y doPost lo tendrán en el objeto HttpServletRequest.

Los métodos que nos permiten recuperar la información de la IP y el nombre de la máquina peticionaria son: getRemoteHost() y getRemoteAddr(). Simplemente les invocamos sobre el método HttpServletRequest.

String ip = null; // IP del cliente
String host = null; // Host del cliente

ip = request.getRemoteAddr();
host = request.getRemoteHost();

Una vez obtenida la información, simplemente tendremos que devolverla por respuesta. Para ello nos apoyamos sobre los objetos PrintWriter y HttpServletResponse.

Veamos el código:

PrintWriter out = response.getWriter();
response.setContentType("text/html");
	   
out.println("<html><head><title>Obtener IP del cliente</title></head><body>");
out.println("<strong>Obtener la IP del cliente </strong>");
out.println("La ip del cliente es " + ip + "<br>");
out.println("El host del cliente es " + host);
out.println("</body></html>");

Ver que el código que se devuelve en el stream de respuesta es una página web. De hecho, antes de devolver ninguna información indicamos que el content-type de respuesta es un «text/html».

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
SVG

Dibujar una elipse en SVG

Creado: 11/Ene/2008 Actualizado: 16/Dic/2025

Si queremos dibujar una elipse en SVG deberemos de utilizar la etiqueta <ELLIPSE/>. En este caso lo que vamos a hacer es dibujar una elipse de 50×100 de color rojo.

La forma de configurarla es muy sencilla. En primer lugar lo que hay que hacer es posicionarla en el eje de coordenadas mediante los atributos cx y cy.

 

Una vez posicionada deberemos de darle un valor de radio de ancho y alto. En este caso utilizaremos los atributos rx y ry. Mediante rx especificamos el radio horizontal de la elipse y mediante ry el radio vertical.

 

Lo último que nos quedará será el rellenar la elipse del color elegido. Rojo en nuestro caso. Para ello utilizamos la propiedad de pintado fill dandole el nombre en ingles del color.

 


Visualizar el ejemplo
| Descargar el código

Artículos
CSS

Cursor personalizado en CSS

Creado: 10/Ene/2008 Actualizado: 25/Ago/2021

Mediante CSS podemos modificar el comportamiento del cursor. De una forma básica mediante las las opciones básicas que nos ofrece CSS para cursores o bien indicando un cursor personalizado.

Lo primero para crear un cursor personalizado en CSS será hacernos con un cursor. Estos archivos tienen la extensión .cur. Si bien, la especificación CSS no entra a especificar el formato del cursor. Incluso indica que podría ser un formato SVG.

Una vez que tengamos el cursor en una URL accesible desde la página, procedemos a personalizar el cursor en nuestra página.

Para ello tendremos que utilizar la propiedad cursor y como valor, mediante la función url(), indicarle la URL donde está el cursor.

cursor:url("micursor.cur");

Esta propiedad se la podremos asignar al elemento de la página donde queremos que aparezca el cursor. Puede ser sobre un enlace (A), sobre toda la página (BODY),… En el caso de que sea sobre toda la página, el código sería el siguiente:

Después del cursor es una buena práctica el que se indique un cursor de los básicos, para que, en caso de haber problemas con la carga del cursor personalizado, pueda aparecer un cursor.

En este caso hemos indicado el cursor «crosshair» por defecto.

Algunos navegadores no cargar en cursor personalizado si no se ha indicado el cursor por defecto. Así que es bueno seguir esta práctica.

Ya tenemos todo el código necesario para tener un cursor personalizado en CSS.

Código Fuente

Descárgate el código fuente de Cursor personalizado en CSS
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Test CSS

¿Te atreves a probar tus habilidades y conocimiento en CSS con nuestro test?

Test CSS
Artículos
CSS

Subrayado con puntos en CSS

Creado: 09/Ene/2008 Actualizado: 25/Ago/2021

Por defecto, la mayoría de los navegadores utilizan un subrayado de una línea para mostrar los enlaces que tiene nuestra página web. Las hojas de estilo CSS nos permiten modificar este comportamiento y dotar a los elementos de una página (enlaces incluidos) del diseño que más nos guste.

En este caso vamos a hacer que el subrayado del enlace sea una línea de puntos. Para tener un subrayado con puntos en CSS nos vamos a apoyar en la propiedad border-bottom. Mediante esta propiedad podemos dar estilo al borde inferior de un elemento. En el caso de un enlace, el borde inferior de un elemento coincide con su subrayado.

Todas las propiedades CSS de los enlaces se las asignaremos al elemento A. Para ello crearemos, en la cabecera de la página, unas etiquetas de estilos:

Lo primero que tenemos que hacer para tener un subrayado con puntos en CSS es eliminar el subrayado por defecto del elemento. El subrayado del enlace lo refleja la propiedad text-decoration. Para eliminar el subrayado le asignamos el valor de none.

a {
  text-decoration:none;
}

Ahora vamos a definir el subrayado con puntos en CSS. La propiedad border-bottom tiene tres valores separados por blancos. Ancho, estilo y color. El estilo de puntos es «dotted». De esta forma, si queremos definir un ancho de 1px sería el siguiente código:

a {
  border-bottom:1px dotted #9999CC;
  text-decoration:none;
}

Solo nos quedará el añadir un enlace a nuestra página web y ya tenemos el subrayado con puntos en CSS.

Código Fuente

Descárgate el código fuente de Subrayado con puntos en CSS
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Test CSS

¿Te atreves a probar tus habilidades y conocimiento en CSS con nuestro test?

Test CSS
Artículos
CSS

Lista CSS de números romanos

Creado: 05/Ene/2008 Actualizado: 25/Ago/2021

Las listas ordenadas en HTML se representan mediante la etiqueta OL. Y mediante el uso de CSS podemos alterar el tipo de lista ordenada que queremos que sea.

Para ello tenemos la propiedad list-style-type. Con ella podremos indicar que los números de la lista sean romanos. Además podemos indicar que sean en mayúsculas o minúsculas. Es por ello que tenemos dos valores para la propiedad list-style-type: upper-roman para las mayúsculas y lower-roman para las minúsculas.

Lo que vamos a hacer para definir una lista CSS de números romanos es definir dos estilos: «romanos_upper» y «romanos_lower», los cuales utilizaremos con las listas de nuestra página web.

La definición de los estilos quedará como sigue:

.romanos_upper{
  list-style-type:upper-roman;
}
.romanos_lower{
  list-style-type:lower-roman;
}

Ya solo nos quedará utilizar el atributo class del elemento OL para asignarles un estilo u otro. Veamos como quedaría el código:

  1. Primer elemento
  2. Segundo elemento
  3. Tercer elemento
  4. Cuarto elemento
  5. Quinto elemento

Y de esta forma tan sencilla tenemos una lista CSS de números romanos.

Código Fuente

Descárgate el código fuente de Lista CSS de números romanos
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Test CSS

¿Te atreves a probar tus habilidades y conocimiento en CSS con nuestro test?

Test CSS
Artículos
wForms

Condicionar partes de un formulario

Creado: 04/Ene/2008 Actualizado: 16/Dic/2025

Con wForms además de poder hacer un sin fin de validaciones de una forma sencilla, también podemos condicionar partes el formulario, de tal manera que dependiendo de un valor de un campo, tengamos acceso a otra parte o directamente que no nos la muestre.

En nuestro caso, para demostrar su utilidad, vamos a crear un formulario con un checkbox, el cual al activarlo permita seguir insertando datos del formulario. En primer lugar pondremos los datos del usuario y en la parte condicionada los datos de la tarjeta. Que solo se ofrecerán al usuario si este los requiere.

Lo primero será cargar la librería wForms. Para ello, en la cabecera de la página insertaremos el siguiente código:

<script type="text/javascript" src="wforms.js"></script>

Empecemos a construir nuestro formulario. Esto es muy sencillo, ya que es un conjunto de campos input y además, para no complicarnos la vida los pondremos de tipo text. Y el checkbox, el cual controlará la condición de mostrar o no.

<form action="#" method="post">
<fieldset>
<legend>Información del usuario</legend>

<label for="nombre">Nombre: </label>
<input type="text" id="nombre"/><br>
<label for="apellido">Apellido: </label>
<input type="text" id="apellido"/><br>

<input id="activar" type="checkbox"/>
<label for="activar">Quiere dejarnos sus datos de la tarjeta</label><br>

<div>
  <label for="tarjeta">Tarjeta: </label>
  <input type="text" id="tarjeta"/><br>
  <label for="fecha-exp">Fecha Expiración: </label>
  <input type="text" id="fecha-exp"/>
</div>

<input type="submit" value="Enviar los datos"/>
</fieldset>
</form>

En este caso hay que hacer notar que hemos puesto los datos de la tarjeta dentro de una capa. Ya que este será el elemento que condicionemos. Aunque lo podríamos hacer sobre un elemento en particular del formulario

Como casi todo en wForms, condicionar partes de un formulario, funciona mediante clases. Para ello hay que conocer dos:

  • switch-id, es la clase que se le asigna al elemento controlador. Este elemento tiene que ser un checkbox, radio o un option.
  • onstate-id y offstate-id, es la clase que se le asigna a los elementos condicionados. Es decir, los que se tienen que mostrar u ocultar. Utilizaremos off u on dependiendo del comportamiento que queramos. Si queremos que al activar el lanzador se oculten usamos off y si queremos que al activar el lanzador se muestren, utilizamos on.

El ID puede ser cualquier identificador que queramos, siempre y cuando coincidan el del switch y el del on/offstate.

De esta forma utilizaremos la clase switch-datos en el checkbox y el offstate-datos sobre la capa. Quedándonos el siguiente código:

<form action="#" method="post">
<fieldset>
<legend>Información del usuario</legend>

<label for="nombre">Nombre: </label>
<input type="text" id="nombre"/><br>
<label for="apellido">Apellido: </label>
<input type="text" id="apellido"/><br>

<input id="activar" type="checkbox" class="switch-datos"/>
<label for="activar">Quiere dejarnos sus datos de la tarjeta</label><br>

<div class="offstate-datos">
  <label for="tarjeta">Tarjeta: </label>
  <input type="text" id="tarjeta"/><br>
  <label for="fecha-exp">Fecha Expiración: </label>
  <input type="text" id="fecha-exp"/>
</div>

<input type="submit" value="Enviar los datos"/>
</fieldset>
</form>

Como último paso hay que añadir unos estilos para que se produzca el efecto de ocultar y mostrar. Estos los añadiremos en la cabecera de la página.

<style type="text/css">
.onstate-datos { display: block; }
.offstate-datos { display: none; }
</style>

Quizás, el mayor inconveniente que tenemos en el uso de este código es que no es muy accesible, ya que, con un javascript deshabilitado no podríamos tener acceso a los datos ocultados. A las malas podemos ofrecer siempre los campos de la tarjeta y que el checkbox lo que haga sea ocultarlos en vez de mostrarlos.

Visualizar el ejemplo | Descargar el código

Artículos
Accesibilidad Web,Eventos

2nd European eAccessibility Forum

Creado: 03/Ene/2008 Actualizado: 27/Ago/2021

El 28 de Enero de 2008 se celebra en Paris, el 2nd European eAccessibility Forum promovido por BrailleNet. En ese caso bajo el título «Accessible e-books: an opportunity for the disabled».

De nuevo una oportunidad para que las empresas, administraciones y órganos europeos pongan en común información sobre e-accesibilidad y en concreto sobre todo lo relacionado con las publicaciones de e-books accesibles.

Entre los temas a tratar:

  • Necesidades y experiencias de los lectores.
  • Servicios que garanticen el acceso en igualdad a la lectura.
  • Cadenas de publicación accesibles.
  • Copyright versus accesibilidad.
  • Librerías digitales para todos.
  • Buenas prácticas alrededor del mundo.

Los precios van desde los 30€ para estudiantes hasta los 120€ para empresas.

Puedes obtener más información e inscribirte en la web del evento.

Artículos
CSS

Incrementar items de una lista HTML de dos en dos

Creado: Actualizado: 25/Ago/2021

Como pudisteis leer en el artículo «Número de inicio de una lista con CSS», la gestión de contadores en CSS nos permite alterar el comportamiento estándar de las listas ordenadas en HTML. En este caso vamos a ver como podemos incrementar items de una lista HTML de dos en dos.

Por defecto las listas ordenadas empiezan con el valor 1 y se van incrementando de uno en uno. Nos apoyaremos en la propiedad counter-increment para alterar este comportamiento.

La sintaxis de la propiedad counter-increment es la siguiente:

counter-increment: idcontador incremento

Por defecto, el valor de incremento es 1. Es decir, que si queremos que se incrementen de dos en dos tendremos que asignarle el valor de 2.

Quedándonos la definición del estilo sobre el elemento LI de la siguiente forma:

li:before {
	content: counter(item) ". ";
	counter-increment: item 2;
}

Si bien, tendremos que haber definido con anterioridad el valor de inicio del contador. Esto nos lo proporciona la propiedad counter-reset. Es por ello, que sobre el elemento OL definiremos el siguiente estilo:

ol {
  counter-reset: item -1;
}

El valor de -1 es para que la lista empiece realmente por 1. Ya que el incremento se aplicará a todos los elemento, incluido el primero de ellos. Entonces, al incrementar 2 al -1, tendremos que el primer elemento es el 1.

Código Fuente

Descárgate el código fuente de Incrementar items de una lista HTML de dos en dos
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Test CSS

¿Te atreves a probar tus habilidades y conocimiento en CSS con nuestro test?

Test CSS