Artículos
Java

Modificar time-out de sesión

Creado: 12/Nov/2006 Actualizado: 13/Sep/2020

Cuando un usuario realiza una conexión contra una aplicación web se le crea una sesión. La sesión es la identidad que tiene dicho usuario en el servidor hasta que se desconecta. Es por ello que deberemos de conocer cómo modificar time-out de sesión en Java para controlar su duración.

En la sesión de un usuario se podrá almacenar información que queramos que previa mientras el usuario permanezca conectado a nuestra web.

Y esta última frase es el kit de la cuestión. ¿Cuándo sabemos que un usuario se ha desconectado? Pues es difícil, ya que el protocolo HTTP es sin estado y las peticiones vienen y van sin un control. Es por ello que la única forma de saber que un usuario se ha ido es indicando un tiempo de caducidad de la sesión, más conocido como timeout de sesión.

Dependiendo del contenedor de servlets que estemos utilizando, este establecerá el timeout de sesión en un valor u otro atendiendo a unos parámetros de configuración.

Por ejemplo, Tomcat utiliza el fichero /conf/web.xml para configurarla, como podemos ver en estas líneas de código:

<!-- ==== Default Session Configuration ==== -->
<!-- You can set the default session timeout (in minutes) for all newly -->
<!-- created sessions by modifying the value below. -->
<session-config>
  <session-timeout>30</session-timeout>
</session-config>

Como vemos, establece 30 minutos como tiempo máximo de inactividad.

Pero cuando creemos una aplicación podemos indicar un tiempo de timeout sobre esta aplicación. Y es que quien no nos dice que nuestra aplicación pueda correr sobre varios contenedores de Servlets.

Para configurar el timeout de la sesión de nuestra aplicación deberemos de configurar el descriptor de despliegue de la misma (/WEB-INF/web.xml). Para ello utilizaremos la etiqueta session-config y anidada a ella session-timeout. Vamos, que son las mismas etiquetas que utiliza Tomcat.

Así, el código nos quedaría de la siguiente forma:

<session-config>
  <session-timeout>10</session-timeout>
</session-config>

En este caso establecemos el tiempo de timeout a 10 minutos. Y con esto habremos conseguido el modificar time-out de sesión en Java.

Código Fuente

Descárgate el código fuente de Modificar time-out de sesión
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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
Java

Leer parámetros de inicialización de un servlet

Creado: 11/Nov/2006 Actualizado: 13/Sep/2020

En la vida de ejecución de un servlet, este, recuperará información de múltiples sitios. Por ejemplo recibirá en la petición información vía parámetros, recuperará datos de múltiples orígenes: bases de datos, ficheros,… Es por ello que es importante saber leer parámetros de inicialización de un servlet.

Uno de los sitios de donde podrá recuperar información son los parámetros de inicialización del servlet.

Cuando creamos un servlet y lo definimos en el descriptor de despliegue, podemos indicarle que el servlet lleva asociado parámetros de inicialización y los valores de dichos parámetros.

El uso de estos parámetros es muy potente, ya que se pueden modificar sus valores, con el fin de obtener un comportamiento diferente del servlet, sin necesidad de recompilar este.

Algunos de los usos de los parámetros de inicialización podrían ser:

  • Tiempos de control de peticiones
  • Nombres de recursos externos a los que acceder: ficheros, bases de datos,…
  • Nivel de log que se quiere aplicar al programa.

Siempre suelen ser cosas relativas a la configuración del servlet.

Lo primero que tenemos que hacer es definir en el descriptor de despliegue (/WEB-INF/web.xml) del servlet:

<servlet>
  <description>Ejemplo ...bla bla bla.</description>
  <display-name>ParametrosInicio</display-name>
  <servlet-name>ParametrosInicio</servlet-name>
  <servlet-class>com.lineadecodigo.ParametrosInicio</servlet-class>
</servlet>

El servlet se define mediante la etiqueta servlet. Anidada a esta tenemos dos etiquetas importantes. servlet-name será el nombre de referencia del servlet y servlet-class será la clase java que implementa dicho servlet.

Los parámetros del servlet también se definen dentro de la etiqueta servlet. Para ello utilizaremos la etiqueta init-param. Anidada a este tenemos dos etiquetas: param-name que será el nombre del parámetro y param-value que será el valor que le demos al parámetro de inicio.

En nuestro ejemplo vamos a definir dos parámetros. El primero será NivelLog que almacenará el tipo de log con el que grabaremos y NumeroPeticiones que nos pasará un indicador de limitación.

<servlet>
  <init-param>
    <description>Nivel de log a aplicar</description>
    <param-name>NivelLog</param-name>
    <param-value>DEBUG</param-value>
  </init-param>
  <init-param>
    <description>Número de peticiones para atender</description>
    <param-name>NumeroPeticiones</param-name>
    <param-value>8</param-value>
  </init-param>
</servlet>

Una vez que hemos definido esto en el descriptor de despliegue, tendremos que acceder a los valores desde el servlet.

Lo más normal es acceder a esta información en el método init(). Si es que la información aplica a todas las peticiones del servlet.

Para recuperar los parámetros tenemos que acceder a el método .getInitParameter(String parámetro) que permite acceder al valor del parámetro pasado como argumento a dicho método.

Así, para recuperar los valores de nuestro ejemplo tendremos el siguiente código:

_nivelLog = getInitParameter("NivelLog");
_numeroPeticiones = Integer.parseInt(getInitParameter("NumeroPeticiones"));

Hay que fijarse que los valores de los parámetros de inicio son devueltos como cadenas de texto. Es por ello que tendremos que hacer el tratamiento necesario para convertirlo en otro tipo de dato.

En nuestro caso convertirlo a entero mediante Integer.parseInt(String cadena).

Tanto _nivelLog como _numeroPeticiones lo hemos definido como atributos generales del servlet para que puedan ser utilizados en todo momento.

De esta forma hemos conseguido definir unos parámetros de inicialización en nuestro fichero de configuración y leer parámetros de inicialización de un servlet cuando se inicializa.

Código Fuente

Descárgate el código fuente de Leer parámetros de inicialización de un servlet
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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
HTML

Ir al principio y al final de una página web

Creado: 10/Nov/2006 Actualizado: 25/Ago/2021

Siempre tenemos que buscar que el usuario se sienta cómodo en nuestras páginas web. Para ello debemos de proporcionarle enlaces que le permitan navegar a la página principal, a las categorías principales,… y sobre todo, si la página que tenemos es muy grande, deberemos facilitarle que suba al principio de la página sin que tenga que arrastrar el dichoso cursor.

En este punto hay que comentar que esta situación no debería de darse mucho. No nos interesa que haya páginas kilométricas. Por varias cosas, por ejemplo, porque el usuario no va a entender tanta información de golpe, posiblemente una lectura en varias páginas ayudará al lector, por el tamaño de la página. Cuanto más texto tenga la página, más pesará, lo cual hará más costosa la descarga de la página al navegador.

Pero independientemente de lo grande que sea la página, siempre deberemos de facilitar ir al principio de esta.

Para poder realizar esto utilizaremos el elemento A. Y es que el «ancla» no solo nos sirve para enlazar páginas, sino para señalar un punto específico de esta.

Así, si queremos señalar un punto en concreto utilizaremos el atributo name

<a name="arriba"></a>

Si ponemos este código en el principio de la página podremos hacer enlaces que nos posicionen el navegador en él. Lo mismo nos servirá si lo ponemos en cualquier parte de la página web, con cualquier otro nombre.

Así, en la parte inferior de nuestra página, podríamos poner el siguiente ancla A:

<a name="abajo"></a>

Lo que vendrá a hacer referencia a la parte de abajo de la página.

Ahora solo nos quedará el crear los enlaces. Para crear un enlace se utiliza el mismo elemento A, pero en vez de con el atributo name, utilizaremos el atributo href.

<a href="pagina.htm">Texto del enlace</a>

En la línea de código que acabamos de escribir se hace un enlace a una página en concreto. Si queremos hacer referencia a una parte de la página, es decir, a una parte definida mediante el name del elemento A , deberemos de utilizar la almohadilla después del nombre de la página.

<a href="pagina.htm#arriba">Texto del enlace</a>

Si la parte de la página es en la misma página que en la que estamos insertando el enlace, podremos obviar el nombre de la página:

<a href="#arriba">Texto del enlace</a>

Nuestro ejemplo de ir al principio y al final nos quedará de la siguiente forma:

<html>
  <head>
    <tile>Ir Arriba e ir abajo</title>
  </head>
  <body>
    <a name="arriba"></a>
    <a href="#abajo">Ir a la parte de abajo</a>

    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

    <a href="#arriba">Ir a la parte de arriba</a>
    <a name="abajo"></a>
  </body>
</html>

Solamente tenemos que copiar este código en un fichero que llamaremos PrincipioYFin.htm.

Código Fuente

Descárgate el código fuente de Ir al principio y al final de una página web
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre HTML

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

Test HTML

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

Test HTML
Artículos
Java

Mandar emails con JavaMail

Creado: Actualizado: 11/Abr/2020

Una buena funcionalidad a incluir dentro de cualquier página web es el envío de correos. El poder adjuntarla información que estamos leyendo en ese momento, vía correo a otra persona (o a sí mismo). Así que vamos a ver cómo podemos mandar emails con JavaMail.

El API de JavaMail nos permite el envío de correos. Abstrayéndonos de los protocolos de comunicación para el envío de emails (SMTP, POP3, MAIL,…).

Con muy pocas líneas de código nos permite el enviar un mensaje a una dirección de correo electrónico.

Los pasos a seguir serán:

  1. Propiedades del envío
  2. Obtener la sesión
  3. Configurar los campos del mensaje
  4. Configurar el texto del mensaje
  5. Enviar el mensaje

1. Propiedades de envío

Lo primero que tenemos que hacer es configurar las propiedades del envío. Es decir, cual es el servidor de correo que vamos a utilizar, si el servidor requiere autenticación, el tipo de transporte a utilizar,..

Todas las configuraciones las definimos mediante la clase Properties. Para incorporar una propiedad utilizamos el método .put(propiedad,valor)

Properties props = new Properties();

props.put("mail.smtp.host","mail.lineadecodigo.com");
props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.auth", "true");
props.setProperty("mail.user", "myuser");
props.setProperty("mail.password", "mypwd");

Al menos las cuatro primeras propiedades son necesarias para realizar la conexión:

  • mail.smtp.host, representa el host que hace de servidor de correo
  • mail.transport.protocol, es el protocolo de comunicación que queremos utilizar para enviar el correo. En este caso es SMTP, pero podría ser mail.
  • mail.smtp.auth, indica si se requiere de autenticación de SMTP.
  • mail.user, es el usuario de la conexión.
  • mail.password, el el password de la conexión.

2. Obtener la sesión

Una vez que tengamos definidas las propiedades, pasaremos a establecer la sesión con el servidor de correo. La sesión se establece mediante la clase Session.

Session mailSession = Session.getInstance(props,null);

3. Configurar los campos del mensaje

Sobre la sesión de correo vamos a crear un mensaje. Los mensajes se manejan mediante la clase Message. Para instanciarlo utilizaremos la siguiente línea de código:

Message msg = new MimeMessage(mailSession);

El mensaje hay que rellenarlo con datos: el usuario destino, el texto del mensaje, el «subject» del mensaje,… Para esto contamos con diferentes métodos dentro de la clase MimeMessage como .setSubject(String), setFrom(Adress),..

msg.setSubject("Mensaje de Línea de Código");
msg.setFrom(new InternetAddress("[email protected]","Línea de Código"));
msg.addRecipients(Message.RecipientType.TO, new InternetAddress[] { new InternetAddress("[email protected]") });

Entremos un poco más en detalle en estos métodos…

En el caso del .setSubject(String) no tiene mucho misterio, ya que simplemente es una línea de texto que represente el subject del correo.

Para el método .setFrom(Address) vemos que el parámetro que recibe es una clase Address. Esta clase viene a abstraer la dirección de email para los correos electrónicos.

Es por ello que tendremos que utilizar el constructor InternetAddress para crear una dirección de email. El constructor recibe dos parámetros, la dirección de email y el nombre asociado a dicha dirección (nombre que suelen usar los programas de correo como referente).

Veamos esa línea de código:

new InternetAddress("[email protected]","Línea de Código")

A la hora de especificar los destinatarios tenemos que utilizar el método .addRecipients(Message.RecipientType,Adress[]) Los parámetros de este método son dos:

  • Message.RecipientType, el tipo de usuario que va a recibir el mensaje. Los valores serían TO, CC, BCC. O en español: para, en copia y en copia oculta.
  • Adress[], como direcciones de email. Ya vimos anteriormente que los emails se montan con la clase InternetAddress.

4. Configurar el texto del mensaje

Para insertar el texto del mensaje utilizaremos el método .setDataHandler(DataHandler). El handler, representado por un DataHandler, tendrá el texto que se va a enviar y el tipo de codificación que le queremos aplicar. En este caso será «text/plain», ya que vamos a enviar texto plano.

DataHandler dh = new DataHandler("Texto del mensaje","text/plain");
msg.setDataHandler(dh);

5. Enviar el mensaje

El mensaje se enviará mediante la clase Transport. Esta clase tiene un método estático que se llama .send(Message). Dicho método recibirá el mensaje que hemos montado anteriormente como parámetro y lo enviará.

Solo necesitaremos la siguiente línea de código:

javax.mail.Transport.send(msg);

En el proceso de envío multiples excepciones pueden ser elevadas. Es por ello que deberemos de ejecutar todo nuestro código entre un try-catch.

Espero que os haya sido sencillo este pequeño ejemplo que paso a paso nos describe cómo mandar emails con JavaMail.

Código Fuente

Descárgate el código fuente de Mandar emails con JavaMail
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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
Java

Reenviar petición a otro Servlet

Creado: 08/Nov/2006 Actualizado: 11/Abr/2020

No siempre un Servlet estará codificado para atender a una petición. Sino que muchas veces y por muchos motivos tendrá que reenviar la petición para que la siga procesando otro Servlet. En este ejemplo vamos a ver cómo reenviar petición a otro Servlet.

Uno de estos casos claros es cuándo estamos implementando un patrón Controller. Donde ese punto de acceso encaminará las peticiones a diferentes Servlets. Para encaminar la petición necesitaremos de una simple línea de código.

Pero lo primero será codificar el método .doGet() que es el que recibirá la petición y desde el sitio a donde interceptaremos la petición para poder encaminarla hacía otro Servlet.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 ...
}

Lo siguiente será implementar el encaminamiento mediante una línea de código. En esta línea recuperaremos el manejador de uno de los Servlets de la aplicación web y le reenviaremos los objetos petición, representado por el objeto HttpServletRequest, y respuesta, representado por el objeto HttpServletResponse, para que los maneje.

Para poder reenviar la petición utilizaremos el método forward(request, response) del objeto RequestDispatcher:

El código de nuestro programa Java nos quedaría de la siguiente forma:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
  request.getRequestDispatcher("NombreDelServlet")
    .forward(request, response);
}

Es importante saber cómo se llama el Servlet al que encaminamos la petición. Ya que el nombre de este Servlet será el parámetro que reciba el método .getRequestDispatcher().

Código Fuente

Descárgate el código fuente de Reenviar petición a otro Servlet
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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
Blog

Línea de Código: Una semana de vida

Creado: Actualizado: 29/Mar/2020

Línea de Código: Una semana de vida, hoy cumplimos una semana desde que se empezó el blog Línea de Código. No ha pasado ni un solo día sin que tuviésemos un nuevo artículo en la web.

Cómo datos estadísticos podemos comentar los siguientes (los que ofrece WordPress):

Estadísticas del blog — Línea de Código

Total Views: 57
Best Day Ever: 16
Views today: 5

Totals

Posts: 9
Comments: 3
Tags: 21

Con respecto a los buscadores, Google.com ya nos ha indexado. Lo curioso es que empezó indexando los artículos y ahora ya no están indexados. Veremos cómo evoluciona.

Hemos escrito artículos de tecnologías variopintos: Java, HTML, JavaMail, JSP, Servlets,… Lo que sería muy bueno es que nos fueseis diciendo sobre qué cosas os interesa más con el fin de escribir sobre ellas. Y de esta manera tener contenido más útil.

Cualquier comentario al respecto será bienvenido… y seguiremos avanzando con Línea de Código: Una semana de vida.

Artículos
Javascript

Hola Mundo en JavaScript

Creado: 07/Nov/2006 Actualizado: 08/Feb/2023

Lo que todo el mundo hace cuando está aprendiendo a desarrollar es el típico programa de «Hola Mundo». Así que vamos a ver cómo podemos hacer un Hola Mundo en JavaScript.

Aunque todo sea dicho que yo he visto gente que busca frases mucho más curiosas saliéndose del tópico. Si bien, el fin es el mismo. La idea es conseguir el compilar o ejecutar el primer programa en un lenguaje que estemos aprendiendo.

En este punto es donde la satisfacción nos desborda. Eso de poder decir… «ya he ejecutado mi primer programa en JavaScript«. Todo un inicio. Y es que los primeros pasos siempre son los más complicados.

Para el caso que nos atañe, el de crear nuestro primer programa en JavaScript deberemos de seguir los siguientes pasos.

En primer lugar deberemos de crearnos una página HTML. Para ello podemos utilizar cualquier editor de texto que tengamos a mano.

<html>
  <head>
    <title>Mi primer codigo JavaScript</title>
  </head>
  <body>
    <h1>Mi primer código JavaScript</h1>
  </body>
</html>

Para poder utilizar código Javascript deberemos de ayudarnos del elemento script. Dentro de esta etiqueta es donde pondremos nuestro código Javascript.

Para empezar un par de nociones nos será suficiente:

Nuestro código quedará de la siguiente forma:

document.write("Hola Mundo");

Este código lo insertamos dentro del elemento script.

<script>
  document.write("Hola Mundo");
</script>

Y la página HTML con el código JavaScript incluido será la siguiente.

<html>
  <head>
    <title>Mi primer codigo JavaScript</title>
  </head>
  <body>
    <h1>Mi primer código JavaScript</h1>

    <script>
      document.write("Hola Mundo");
    </script>

  </body>
</html>

Así tendremos nuestra página web con nuestro Hola Mundo en JavaScript. Ya solo queda abrirla en un navegador web y ver nuestro primer código.

Código Hola Mundo en Javascript

https://github.com/victorcuervo/lineadecodigo_javascript/blob/master/basicos/hola-mundo-javascript.html

Hola Mundo en Javascript
Hola Mundo en Javascript

Código Fuente

Descárgate el código fuente de Hola Mundo en JavaScript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

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

Test Javascript

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

Test Javascript
Artículos
HTML

Hipervinculos: enlazar dos páginas web

Creado: 06/Nov/2006 Actualizado: 24/Feb/2025

Uno de los principios sobre los que se sustenta la WWW es el enlazado de documentos. Así que vamos a aprender a enlazar dos páginas web. Esto se basa en el concepto de Hipertexto, que viene a decir algo así como presentar documentos que puedan bifurcarse o ejecutarse cuando sea solicitado. Esta definición se data en 1963 por el sociólogo Theodore Holm Nelson, mucho antes de que naciese la WWW.

Una de las formas del hipertexto son los hipervínculos o hiperenlaces o enlaces (forma vulgar más conocida de las tres).

Así que si queremos hacer páginas web utilizando HTML, lo primero que tenemos que aprender, o una de las primeras cosas, es cómo hacer enlaces.

Para ello nos tenemos que apoyar en el elemento a que viene del ingles «anchor» (ancla) y que es uno de los elementos base del lenguaje HTML.

Atributos del elemento a para enlazar dos páginas web

Los atributos del elemento a que tenemos que conocer para generar los enlaces son los siguientes:

  • href, donde habrá que especificar la página (o recurso) de destino. Este podrá ser con la dirección absoluta o relativa al enlace que queremos poner.
  • target, donde indicaremos el frame destino de la página. Si queremos que el enlace se abra sobre la misma página, lo dejamos vacío.
  • title, título del enlace. Será útil para que se interprete por los clientes qué significa el enlace que se muestra. Suele ser útil en temas de SEO.
  • type, que especifica el tipo MIME del recurso enlazado, es decir, si es una página, si es una image, un archivo de vídeo,…, ayudando al navegador web a determinar cómo manejar el contenido al que se está enlazando. Este atributo es especialmente útil cuando se enlaza a recursos que no son páginas web estándar.
Atributos del elemento a para enlazar dos páginas web

Código para enlazar las páginas

Ahora ya nos ponemos manos a la obra para poder escribir nuestro código HTML para ello asumimos que estamos en la paginaA.htm y queremos enlazar y por lo tanto abrir la paginaB.htm. En código HTML será algo así:

<a href="paginaB.htm" title="Mi enlace">Mi enlace</a>

De esta forma tan sencilla hemos conseguido enlazar dos páginas web mediante HTML y así seguir tejiendo esta inmensa red que es Internet.

Código Fuente

Descárgate el código fuente de Hipervinculos: enlazar dos páginas web
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Hipervinculos: enlazar dos páginas web

Vídeos sobre HTML

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

Test HTML

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

Test HTML
Artículos
Java

JSP redireccionando a otra Web

Creado: Actualizado: 29/Mar/2020

Seguro que alguna vez os ha pasado el hecho de construir una página web, ponerla en servicio y, por los motivos que sean, tenerla que mover a otra URL. Vamos a ver cómo resolverlo mediante JSP redireccionando a otra Web.

Esto nos pasa cuando se recategorizan o reorganizan las páginas, cuando cambias de dominio,… En estos casos, es muy probable que no nos interese perder el referente de la página de cara al usuario final. Ya sea porque el usuario se sabe o tiene enlazada dicha página o porque los buscadores la tienen catalogada.

Para estas situaciones podemos usar las redirecciones. Este es un sencillo mecanismo, que nos suelen ofrecer todos los lenguajes de servidor, mediante el cual la petición sobre una página es encaminada a otra.

En JSP tenemos acceso a un conjunto de objetos del contesto de la página. Entre ellos Response y Request. Estos vienen a reflejar la petición y respuesta de dicha página.

En el objeto Response contamos con el método .sendredirect(URL), el cual permitirá reenviar el flujo a una nueva URL. Podemos utilizarlo de la siguiente forma:

<% response.sendRedirect("http://www.lineadecodigo.com/"); %>

Esta única línea de código nos bastará para realizar nuestro cometido de tener la JSP redireccionando a otra Web.

Hay que tener en cuenta una cosa. Si utilizamos este método, no podemos volcar ninguna información previa al flujo de salida o response. Ya que en tal caso se produciría un error. Es por ello que suele utilizarse de manera única en las páginas.

Código Fuente

Descárgate el código fuente de JSP redireccionando a otra Web
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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
Java

Autenticar con SMTP

Creado: 05/Nov/2006 Actualizado: 29/Mar/2020

Hoy tenía pensado escribir un artículo sobre JavaScript. Pero es que lo que me ha sucedido esta semana merece escribir un artículo sobre JavaMail y como autenticar con SMTP. En parte para desahogar mis penas, en parte para que si alguien se encuentra con el mismo problema no sufra tanto como yo.Todo empezó el lunes de esta semana, cuando mandé un e-mail a un compañero con el fin de quedar el fin de semana.

Hola Javier,
Que tal te parece si quedamos el próximo fin de semana para ir a tomar unas cervezas…..

Hasta aquí bien. Lo curioso es que dos día después recibo el siguiente correo.

Que tal Línea de Código,
Podríamos quedar este fin de semana y tomarnos unas cervezas para recordar viejos tiempos…

En este punto me dije. O mi amigo se ha convertido en un servidor de ECO o no le ha llegado mi correo. Tras conversación telefónica, efectivamente no le había llegado mi correo.

Después de varios días de pruebas, de validar el filtro del antivirus, de probar con otro servidor de correo,…. me doy cuenta que en el servidor de correo han activado la autenticación de SMTP.

No sé si es que no lo notificaron o no. La verdad es no suelo leerme los correos que mandan (he aquí una mala práctica).

La cuestión es que en los lectores de correo es muy fácil configurar la cuenta para que haga esto. Por ejemplo en Outlook 2003 encontramos un check que dice “Mi servidor de salida (SMTP) requiere autenticación”. Que con activar hace que funcione el envío de correos.

Pero, claro, que pasaba con mis programas escritos en Java con JavaMail. Pues estos, muy a mi pesar, no funcionaban.

Y he aquí el kit de la cuestión ¿Cómo configuro mi programa con JavaMail para que funcione la autenticación SMTP?

Pues muy sencillo. Y es que solo tendremos que activar una de las propiedades de la conexión. La propiedad en cuestión es mail.smtp.auth. La cual, si queremos autenticación SMTP, tendremos que poner a “true”. Tal y como indica el siguiente código:

Properties props = new Properties();
props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host","mail.misevidor.com");

Autentificacion pwd = new Autentificacion();
Session mailSession = Session.getInstance(props,pwd);

La sesión requerirá de una clase que implemente el interface javax.mail.Authenticator.

public class Autentificacion extends javax.mail.Authenticator {
  public Autentificacion() {
    super();
  }

  public javax.mail.PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("[email protected]","mipassword");
  }
}

Espero que os sirva de ayuda. Y que si alguien tropieza con la misma piedra, le cueste menos e arreglarlo que a mí.

Así habremos enviado nuestro email habiendo conseguido autenticar con SMTP.

Código Fuente

Descárgate el código fuente de Autenticar con SMTP
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

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