lunes, 2 de septiembre de 2013

Sessiones de usuario

no se si uds han visto que uno muchas veces entra a facebook y despues visita otras paginas pero vuelves a tu face y te logea como si no te hubieras salido nunca.

bueno hay algo que se llama sessiones de usuario. Nosotros vamos a usar en este momento una session de tipo httpsession que se podria declara asi:  
 HttpSession nombreSesion=request.getSession();

esto lo que hace es que toma la session con la que entraste y la almacena en un objeto de tipo httpsession y si ya esta creada solo la sigue usando.
por ejemplo yo quiero almacenar una serie de resultados pero para cada persona y a diferencia de antes que los resultados eran los mismos para todos, los resultados aca serian independientes para cada usuario.

veamos un ejemplo con un servlet creemos uno nuevo en el proyecto  que veniamos trabajando en unos tutoriales mas abajo.

public class SessionResultadosServlets extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        try {
            HttpSession s =request.getSession();
//aca creamos un array list que nos almacene unos resultados esta primera vez es null por que necesitamos que se inicialice para cada nuevo usuario.//
            ArrayList<Double> res = null; 

      //ahora preguntaremos si el atributo res que tiene mi session no es nulo para mi variable res hagala igual a el atributo res que tiene mi session o de lo contrario cree un nuevo arreglo que se llame res //

   
            if (s.getAttribute("res")!=null)
              {
                          res = (ArrayList) s.getAttribute("res");
               }
            else {
                        res = new ArrayList<Double>();
                    }

          String n1= request.getParameter("n1");
          String n2 = request.getParameter("n2");
          String operacion = request.getParameter("operacion");
                    OperacionesConNumero op = new OperacionesConNumero(Integer.parseInt(n1),Integer.parseInt(n2));
           if(operacion.compareTo("+")==0)
                   {
                        resultado = op.getSuma();
                        res.add(resultado);
                     
                   }
           if(operacion.compareTo("-")==0)
                   {
                        resultado = op.getResta();
                     
                        res.add(resultado);
                   }
           if(operacion.compareTo("*")==0)
                   {
                        resultado = op.getmult();
                        res.add(resultado);
                   }
           if(operacion.compareTo("/")==0)
                   {
                        resultado = op.getdiv();
                        res.add(resultado);
                   }
           s.setAttribute("res", res);// aca simplemete le asignamos al atributo res lo que tenia la variable que llamamos res tambien
          out.println(n1+operacion+n2+"="+resultado);
            for (int j = 0; j < res.size(); j++) {
               out.println("<br>"+res.get(j));
             
             
            }
            out.println("</html>");
         
         
        } finally {          
            out.close();
        }
    }

No hay comentarios:

Publicar un comentario