Regularmente cuando realizaba pequeños proyectos web y trabajaba con sesiones siempre todo lo manejaba en archivos JSP, pero esta vez decidi probar un servlet para el manejo de sesiones y mostrar lo facil que puede resultar. Lo que comunmente hacemos es trabajar con el famoso cuadro de logueo, en donde colocamos el usuario y el password para luego ser validado y crear la sesion. Bueno lo primero que tenemos hacer es crear el proyecto dentro de NetBeans (ya saben como aplicativo web) y luego escribir algo de código basico HTML dentro del archivo «index.jsp» creando el cuadro de logueo mas o menos quedando asi:
El diseño queda a disposicion de ustedes, ahora hay un sin fin de herramientas que permiten realizar este tipo de trabajo, esto es solo para uso didactico. obviamente esta tabla de logueo lo mantendremos dentro de un «form» dado que utilizaremos el metodo POST y en el action colocaremos el Servlet al cual llamaremos «GeneraSession».
Una vez hecho esto, creamos el archivo «principal.jsp» el cual nos servira para mostrar el resultado luego de realizar el logueo.
Luego creamos nuestra clase que actuara como servlet. Hacemos click derecho sobre nuestro proyecto y elejimos New –> Servlet, le damos el nombre (GeneraSession.java) y se nos mostrara un cuadro en donde nos dice que este nombre del servlet sera añadido al archivo de configuración «web.xml» el cual servira para poder ubicarlo y luego le damos click en terminar
Una vez hecho esto solo quedaria agregar el codigo dentro del metodo «processRequest», quedando algo como esto:
Podemos observar que estamos obteniendo los datos del formulario mediante el request para ser validado y asi poder generar la sesion, para luego enviarnos a la pagina principal. Ahora esto no quedaria alli; en la pagina «principal.jsp» que ha sido creada tendriamos que realizar tambien la validacion de la sesion, dado que como sabemos las sesiones tienen un tiempo de vida, si sobrepasa este tiempo la sesion automaticamente se destruye (a no ser que personalize el tiempo de vida), entonces en la pagina «principal.jsp» tendriamos algo como esto:
De esta forma validamos si la sesion persite, en caso contrario te enviaria a la pagina de inicio para volver ha realizar el logueo.
Como veran es una forma practica de trabajar con sesiones mediante un servlet; obviamente esto tendria que mejorarse, pero esto puede ser un punto de partida para muchos.
[…] de reportes * Haz facil el scroll con Scrollable (JQuery) * Curiosidades sobre el kernel de Linux * Manejo de sesiones con Servlets con Netbeans * Juego para Linux, Lavirinto3D * Pantallazos de Kubuntu 8.10 Intrepid Ibex * Ubuntu NextG para […]
El tutorial está muy bien construido!
Gracias, de mi parte y de mis alumnos (institutonuevocuyo.org.ar), desde Mendoza, Argentina.
Hola Sergio, bueno gracias a ti por date un tiempo para el leer el blog.
Saludos.
hola
gracias por tu aporte es una buena forma de empezar a usar sesiones, con tu explicación sencilla pero rica en información he entendido un poco mas el manejo de sesiones
gracias por tu aportacion muy util
me gustaria me pudieras explicar como le hago para pasar de este servlet a otro como para comenzar una conversacion con alguiien
gracias
Hola gaby, ante todo agradecerte por darte un tiempo para leer el blog, bueno con respecto a tu pregunta lo que podrias hacer es en la parte del codigo que dice response.sendRedirect(«pagina»), podrias llamar a un servlet en lugar de una pagina algo asi como esto:
response.sendRedirect(«mi_otro_servlet»)
Espero te sirva
Saludos.
hey nachxs te felicito el tuto esta bien censillo y practico, post como este hacen que la web sea tan interesante.
Hola DanCor, gracias a ti por darte el tiempo para leer el blog. y enviar tu comentario.
esta bien chevere el aporte este blog es interesante para jsp porque existe poca informacion sobre netbeans eres lo maximo…..
hola
tu practica esta muy buena pero tienes ejemplos que tengan conexion con bases de datos
te agradeceria mucho
un fuerte abrazo
Hola Carol, gusto de saludarte, claro que tengo, en este post solo lo puse como parte inicial del desarrollo con sesiones. Una pregunta, que gestor de base de datos utilizas??. Yo trabajo con postgres pero la mecanica seria la misma; si vas ha utilizar otro gestor; solo va ha variar la cadena de conexion y dependendiendo de la sintaxis SQL.
Saludos.
Hola nachxs, ma a ayudado mucho tu tutorial ya que estoy iniciando en el tema de desarrollo web, muchas gracias. Pero tengo una duda, como cambiar la temporalidad de las sesiones (su tiempo de vida)? se registra este datos en el web.xml? y si nos podrías decir donde consultar información y/o documentación sobre las sesiones.
Gracias de nuevo.
Hola Ark0, lo que puedes hacer es probar con esta forma
tu_session_actual.setMaxInactiveInterval(milisegundos);
Saludos.
Hola muy bueno tu Aporte espero que sigas subiendo mas de servlest , jsp, quisiera uno con conexion a bade de datos garcias ..bye ……..
Hola que tal, el tutorial esta buenisimo. tengo una duda q no se como resolver, tengo mi login asi como esta aqui, ya comparado con una base de datos, el problema es que al dar clic en el navegador hacia atras me muestra la pagina de la que sali. como puedo evitar esto?
De antemano muchas gracias!!! 😀
si no me equivoco valida, con responde,sedRedirect(«lapagina.jsp») espero que te sirva gracias
Me gusto mucho este tutorial, aunque no me lee el servlet =/. Me sale «el metodo http post no es soportado por esta url». estoy buscando el error, que crees que sea?
aaaaaaaaah que tonto!! ya encontré el error! Disculpen las molestias, es que soy nuevo en esta materia ^^. En fin espero mejorar mucho y todo sera gracias a gente como vosotros.
Un saludo 😀
cual era la solucion a tu error…. pues a mi tambien me sale lo mismo…. yo recien estoy iniciando en esto, gracias.
Muy buena la información. Pero sería bueno que pongas el código en texto para poder copiarlo y no en imagen.
Hola Hugo, tomare en cuenta este punto.
Saludos.
Tengo una duda cuando ejecuto el programa en netbeans, se ejecuta el index.jsp y voy al navegador (Firefox) y pongo : /principal.jsp y me regresa al index.jsp.
Pero en Internet Explorer quiero hacer la misma jugada para ver si me retorna al index.jsp (pues no he hecho alguna sesión) y obtengo un error:
——-
Estado de HTTP 404 –
Descripción: El recurso solicitado () no se encuentra disponible.
Cómo se puede solucionar ese problema?
Hola Fernando, gracias por leer el blog. Bueno con respecto a tu pregunta, siempre pasa eso con IE, a mi me ha pasado con otros casos y tenia que ver la forma de evitar estos errores (horrores de Microsoft), tu sabes que esos problemas a veces son ajenos a nuestro desarrollo, pero quizas te pueda servir si agregas:
if (request.isRequestedSessionIdValid()){
// aqui todo tu codigo de validacion
}else{
response.sendRedirect(«index.jsp»)
}
Espero te sea util.
muy bueno esto che.
justamente estoy viendo algo similar pero con bases de datos mysql.
si te parece bien, podriamos colaborar en algunos proyectos java.
Saludos.
Gracias Hombre…
Se aclaron muchas dudas existentes, bien por este manual…
Y por tu tiempo al colgarlo
Bytes
Hola Nachxs, muchas gracias por el manual, es posible hacer esto con una conexión a mysql?, lo he intentado de diferentes formas pero no me resulta, podrías ayudarme con esto?
Muchas Gracias
hola eh estado leyendo tu publicacion y me parece de gran ayuda a las personas como yo que estamos aprendiendo herramientas como esta y bueno pienso y espero que me puedas ayudar con esto de las sesiones lo que pasa es no puedo registrar la hora de salida de sesion desde el close de la ventana del navegador y bueno me piden que mande a una base de datos todas las transacciones que realice un usuario por ejemplo:
mi trabajo consta de busquedas …. palabra: jerarquico y lo que hara es arrojar las posibles soluciones enviando asi un pdf lo que quiero hacer es que al momento de pinchar algun pdf me lo registre y bueno tendre mas moenos el control con el tiempo de salida
espero que me haya podido explicar y no confudido gracias y espero que me puedas contestar
Hola, cuando ejecuto el servlet me sale que la URL no soporta el metodo POST o el GET…
bye
a mi no me funcionó usando netBeans y usando el Servidor GlassFish!!al hacer clik en ACEPTAR DEL FORM DE LOGIN NO ME MUESTRA ABSOLUTAMENTE NADA!
Hola Mario, seria bueno mostrar como es que esta su servlet o tu pagina principal luego del logueo, porque si no te aparece nada es por algun error o porque no pusiste nasa en tu pagina principal.
Saludos.
yo hice mi servlet exactamente como está acá en este tutorial, pero nada! Estoy usando GlassFish v2.1 con NetBeans 6.7.1. Hice las paginas y el servlet como acá pero no me funciona, no hace el redirect a ninguna pagina. Sin embargo, tengo una pagina para dar de alta a socios y esa si me funciona perfectamente
Mario, hola.
Como te dije anteriormente seria bueno colocar mas detalle del problema que tienes porque asi no podemos ayudarte, no podemos saber a se puede dar ese error, fijate en la salida que te muestra Glassfish, alli quizas tengas mas detalle del problema.
Saludos.
Hola, muy buenos estos aportes.. se nota que con las preguntas se enriquece mas el articulo que de por si esta bueno..¡¡¡.
Yo tengo que hacer esto mismo pero con los datos de usuario y contraceña que estan en un archivo csv, que a su ves se esta leyendo y escribiendo desde una aplicacion de escritorio; la verdad seria mejor con sql pero como es para la facu tengo que hacerlo asi…
si alguien tiene alguna idea le reeeeeeeeeee agradesco……..
el error que muestra de metodo POST o GET no soportado por URL se soluciona cambiando una parte en el codigo del servlet.
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
EL processRequest cambienlo por doPOST el resto igual y funciona
Saludos
HTTP Status 405 – El Metodo HTTP POST no es soportado por esta URL
——————————————————————————–
type Status report
messageEl Metodo HTTP POST no es soportado por esta URL
descriptionThe specified HTTP method is not allowed for the requested resource (El Metodo HTTP POST no es soportado por esta URL).
tengo ese error ya cambie a doPOST y sigue el error ayuda
que tal, esta muy bueno el post y me ha servido pero tengo un problema, cuando meto el código en el .jsp para validar la información del usuario y dar o no acceso, me marca error en la variable request, dice que no existe… como la jalas? o porque a ti no te marca error?
Gracias
ohhh ya no, ya lo corregí haha, gracias
muy bueno. Gracias
ola he visto tu ejemplo.. no lo he probado ..
tengo un problema..iuntento hacer una aplicacion web.con netbeans conectada a una base mysql.y uso el tomcat como loscalhost.
esta es mi descripcion> tengo un formulario.jsp de donde mando y traigo la info hacia la base..
hago la coneccion por medio de una clase servlet (aki hago toda mi programacion.. en los metos doPost())
el problema q tengo esq no puedo hacer las consultas ..al momento de compilar el formulario. no se conecta.. ni hace consultas..es decir esta muero jeje
yo he hecho este ejercicio antes de operaciones desde java hacia mysql pero con una clase normal ..nunca desde un servlet..
si tiene algun tipo de info q me puedan facilitar seria de mucha ayuda..he buscado ejemplos pero no veo nada =)
talves tenga q configurar algo! estoy en un ounto muerto…grax
Hola TeNm, gracias por comentar en el blog, bueno no te podría ayudar si no me muestras el error, o tal vez me podrias enviar tu aplicación para revisarla y luego te indicaría en que podrías estar fallando. Muéstrame el error.
Saludos.
hola nachs muchas grax por responder ..he pensado en lo q puede estar mal.. y me he dado cuenta q cada ves q kiero hacer una consulta en la base de datos desde el servlet hay q crear la conexion.. yo pensaba q podia crear la coneccion 1 ves y dejarla abierta y hacer multiples consultas distintas..
por otra parte creo tener errores de conxion en algun lado o de libreias jeje esq soy muy nub ><
aki te mando un pekeño ejemplo lo trabajo en netbenas aunke en eclipse debe ser igual..
esta es la clase servlet donde kiero hacer mis consultas !
package contolador;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import modelo.Persona;
/**
* Servlet implementation class Servletcrear
*/
public class Admin extends HttpServlet
{
private static final long serialVersionUID = 1L;
String cod,nom,mail;
ArrayList personas = new ArrayList();
/**
* Default constructor.
*/
public Admin() {
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAll(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAll(request,response);
}
private void doAll(HttpServletRequest request, HttpServletResponse response) throws IOException
{
response.setContentType(«text/html»);
PrintWriter out = response.getWriter();
out.println(«crear»);
out.println(«»);
if(request.getParameter(«operacion»).equals(«ADD»))//PARTE PARA AGREGAR UNA PERSONA
{
cod = (request.getParameter(«codigo»));
nom = (request.getParameter(«nombre»));
mail = (request.getParameter(«correo»));
crearPersona(cod,nom,mail);
}
out.println(« VOLVER «);
out.println(«»);
}
private void crearPersona(String cod, String nom, String mail) {
//INSTACIAMOS LA PERSONA
Persona p = new Persona();
p.setCodigo(cod);
p.setNombre(nom);
p.setCorreo(mail);
personas.add(p);
Connection conn=null;
Statement st=null;
ResultSet rs=null;
String urlValue=»jdbc:mysql://localhost:3306/comunidad»;
String user=»root»;
String Password=»»;
String consulta=»Insert into Persona (codigo,nombre,correo)values(‘»+p.getCodigo()+»‘,'»+p.getNombre()+»‘,'»+p.getCorreo()+»‘,'»+»‘)»;
System.out.println(«LA PERSONA SE HA CREADO EXITOSAMENTE»);
try
{
Class.forName(«com.mysql.jdbc.Driver»);
conn= DriverManager.getConnection(urlValue,user,Password);
st= conn.createStatement();
rs=st.executeQuery(consulta);
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
conn.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
——————————————————————————–
y este es mi formulario en donde voy a compilar en localhost
TALLER 3
Datos de la persona
Codigo
Nombre
Correo
Ingrese el codigo a eliminar
sobra decir q tengo la clase persona.
el problema esq no me agrega ala base de datos osea no hace la consulta. q estoy haciendo mal? >< grax por la ayuda..
mmm el formularo salio mal que pena con uds jejeaki esta la correccion
Codigo
Nombre
Correo
mm esto hay q hacerlo sin etiketas jijij
bueno para hacer la operacion tengo algo asi
input type=»submit» name=»enviar» value=»Crear Estudiante»
input type=»hidden» name=»operacion» value=»ADD»
la variable ADD es la q relaciono con el request get parameter para hacer la operacion.
Hola perdona la demora al contestar, mira el problema desde mi punto de vista posiblemente se de en la parte de conexión y ejecución de la consulta podrias mostrarme parte del error? o si te parece si me mandas el proyecto o las clases para revisar y comentarte las posibles correcciones?
Saludos.
hola nachx la verdad si es problema de laparte de conexion..la consulta esta bn ..mira yo me preguntaba si podria tener tu correo o mesengear algo q uses para una asesoria futura jeje ..grax man..si estas de acuerdo este es mi correo zephiano@gmail
tengo una duda;
ya hize todo el ejemplo, solo que a la hora que le introduzco el usuario, y el password, me manda un error:
este
Estado HTTP 405 – El Metodo HTTP POST no es soportado por esta URL
type Informe de estado
mensaje El Metodo HTTP POST no es soportado por esta URL
descripción El método HTTP especificado no está permitido para el recurso requerido (El Metodo HTTP POST no es soportado por esta URL).
Apache Tomcat/6.0.20
a que se debe, como lo resuelvo..
porfis
[…] Manejo de Sesiones con Servlets en NetBeans 6.1 octubre, 2008 45 comentários Categorías:Noticias, Personal Etiquetas: Estadísticas, WordPress LikeBe the first to like this post. Comentarios (0) Trackbacks (0) Deja un comentario Trackback […]
Excelente mi estimado, muchas gracias por el aporte.
Una pregunta tendras ejemplos de conexion a BD (mysql o cualquiera)
Saludos y nuevamente gracias
Gracias por tan sencillo y claro ejemplo, gracias a ello he logrado entender mucho mejor el manejo de las sesiones, espero que sigas adelante y que Dios te bendiga!!
hola bueno felicitarle por el tutorial k nos brinda pero un favor grande si me envia el tutorial completo soy estudiante gracias
Te agradezco, dejame ubicar este aplicativo y te lo enviare
si peude hacer mas tutoriales
Claro que seguire realizando tutoriales, por temas de tiempo no lo puedo hacer.
Hola, muy buen post…
como se hace cuando el administrador termina su sesion para cerrarla??
gracias
una pregunta… para poder hacer esto mismo pero yo deseo que las sessiones sean solo de servlets, excepto el index seria jsp. que codigo tendria que reemplazar por el la porcion de php
ayuda
bien echo amigooooooooo me ayudasteeee mucho muchasss graciasssss lo necesitabaaaaa buen bloggg cuando aprenda mas igual hareunoooo gracias por tu ayudaaaa porke en internet nada mas veo puro php buuuuuuuu y yo ando en esto de los servlets y java y esoo tu sabess jejejeje cuidatee y graciasss solo espero poderlo poner en mi proyecto conajaxxx si no ps yametendras por aki pidiendo ayuda bueno si no es mucha molestiaaa valeee cuidateee suerteee!!!!
Excelente, el mejor post que encontré para terminar mi servlet y manejo de sesiones 😀 Gracias.
Hola necesito ayuda para crear un manejo de sesiones con PHP en una aplicación WEB, tengo algunas dudas, ya tengo la idea pero no la planteo bien….Además de crear la base de datos, pero el manejo de sesiones es dependiendo el usuario. Ayuda por favor. Muy buen POST
excelente la explicacion, lo chevere es que no me toco que leer todo para entender, muy facil lo felicito
Hola master, muy buena explicacion… pero yo quisiera que al momento de logueo me reconozca el tipo de usuario y que me mande a diferentes menus, por ejemplo: Si se loguea un alumno que vaya al menu de alumno y si se logea un maestro que vaya al jsp del maestro.