elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Java / ¿Como mantener en memoria datos de sesion en aplicacion de escritorio con java? en: 16 Diciembre 2016, 00:45 am
Hola... este post es relacionado al anterior pero como la duda ahora es más específica en otro sentido he decidido abrir este nevo tema... resulta que pretendo manejar sesiones dejando las variables cargadas en la clase principal para no tener que consultar la base de datos por gusto... intente con herencia y no se si será por alli el camino... pero como no lo he logrado, pense un poco y se me ocurre pasar por parametro la instancia de una clase que mantenga los valores de sesion... instancia que se hizo en la clase principal... asi se mantendra la clase viva ycon ella sus atributos, los cuales para usarse bastará con pasar por parametro la misma instancia de la clase sesion a la clase que los usará o modificará... He escrito 4 clases y funciona la idea basica....

me gustaria saber si ¿es una locura lógica lo que digo o esto me resolvería definitivmente el problema?

Les muestro los codigos y les agradezco la ayuda.... es algo que me urge

Código
  1. //la clase sesión
  2. public class Sesion {
  3.    int num;
  4.    public Sesion(){
  5.        num=20;
  6.    }
  7. }
  8.  
  9. //La clase principal
  10. public class Clase {
  11.    public Sesion sesion;
  12.    public Clase(){
  13.  
  14.    }
  15.    public Clase(String ini) {
  16.        sesion = new Sesion();
  17.        System.out.println("Clase > Invocando a Hija1");
  18.        Hija1 log = new Hija1(sesion);
  19.        System.out.println("Clase > Num:" + sesion.num);
  20.        Hija2 log2 = new Hija2(sesion);
  21.        System.out.println("Clase > Num:" + sesion.num);
  22.    }
  23.    public static void main(String[] args) {
  24.        Clase log = new Clase("ini");
  25.    }
  26. }
  27.  
  28.  
  29. //Las clases hijas
  30.  
  31. public class Hija1 extends Clase {
  32. public Hija1(){
  33.  
  34. }  
  35. public Hija1(Sesion obj){
  36.     System.out.println("Hija1 > El valor num es: " + obj.num);
  37.     obj.num = 37;
  38.     System.out.println("Hija1 > He cambiado el valor de num a: " + obj.num);
  39. }  
  40. }
  41.  
  42. //la otra clase hija
  43.  
  44. public class Hija2 extends Clase {
  45. public Hija2(){
  46.  
  47. }  
  48. public Hija2(Sesion obj){
  49.     System.out.println("Hija2 > El valor num es: " + obj.num);
  50.     obj.num += 100;
  51.     //System.out.println("Hija1 > He cambiado el valor de num a: " + this.num);
  52. }  
  53. }
  54.  
  55.  

Ayuda
22  Programación / Java / Re: ¿En qué estoy fallando en herencia java? auxilio por favor en: 16 Diciembre 2016, 00:27 am
Hola... como solución lo siguiente:

crear una nueva clase llamada Sesión.java para colocar en ella los atributos de sesion... esta no sera heredada por nadie pero si instanciada por la clase principal y pasada por parametros las a las demás clases.... Estos son los códigos:

1.- La clase de sesion..
Código
  1. public class Sesion {
  2.    int num;
  3.    public Sesion(){
  4.        num=20;
  5.    }
  6. }
  7.  

2.- La clase principal..
Código
  1. public class Clase {
  2.    protected int num;
  3.    public Sesion sesion;
  4.    public Clase(){
  5.  
  6.    }
  7.    public Clase(String ini) {
  8.        sesion = new Sesion();
  9.        System.out.println("Clase > Invocando a Hija1");
  10.        Hija1 log = new Hija1(sesion);
  11.        System.out.println("Clase > Num:" + sesion.num);
  12.    }
  13.    public static void main(String[] args) {
  14.        Clase log = new Clase("ini");
  15.    }
  16. }
  17.  

3.- y la clase hija que será la que reemplazara el valor del atributo e sesión, mismo que debería matnerse presente durante toda la aplicación
Código
  1. public class Hija1 extends Clase {
  2. public Hija1(){
  3.  
  4. }  
  5. public Hija1(Sesion obj){
  6.     System.out.println("Hija1 > El valor num es: " + this.num);
  7.     obj.num = 37;
  8.     System.out.println("Hija1 > He cambiado el valor de num a: " + this.num);
  9. }  
  10. }
  11.  


Haciendolo de esta manera me mantinene el 37 en la clase principal

MI pregunta es: ¿esto es correcto o es un barbarismo?

guienme por favor...
[/b]
23  Programación / Java / Re: ¿En qué estoy fallando en herencia java? auxilio por favor en: 15 Diciembre 2016, 23:11 pm
Muchas Gracias por responderme ivancea96... entiendo lo que dices y esta muy correcto... ahora mi inquietud es ¿Entonces no puedo modificar las variables de la superClase y dejar esos cambios presentes para las otras clases? Esto lo necesito para mantener las variables de sesión de mi aplicación cargadas en memoria... darme un indicio que como podria lograrlo?
24  Programación / Java / Re: ¿En qué estoy fallando en herencia java? auxilio por favor en: 15 Diciembre 2016, 19:29 pm
Aca les dejo dos clases que explican mas claramente lo que necesito resolver...


Esta es la clase principal
Código
  1. public class Clase {
  2.    int num;
  3.    public Clase(){
  4.  
  5.    }
  6.  
  7.    public Clase(String ini) {
  8.        num = 0;
  9.        System.out.println("Clase > Invocando a Hija1");
  10.        Hija1 log = new Hija1();
  11.        System.out.println("Clase > Num:" + num); //Aqui deberia mostrarse el valor de num como 27 ya que es el valor que se le asigno desde la sub clase pero no lo mustra... sigue imprimiendo el valor de cero.... NECESITO que mantenga el valor dado en la sub-clase
  12.    }
  13.    public static void main(String[] args) {
  14.        Clase log = new Clase("ini");
  15.    }
  16. }
  17.  


Esta es la sub clase:

Código
  1. public class Hija1 extends Clase {
  2. public Hija1(){
  3.     System.out.println("Hija1 > El valor num es: " + this.num);
  4.     this.num = 27;
  5.     System.out.println("Hija1 > He cambiado el valor de num a: " + this.num);
  6. }  
  7. }
  8.  
25  Programación / Java / ¿En qué estoy fallando en herencia java? auxilio por favor en: 15 Diciembre 2016, 15:53 pm
¿En qué estoy fallando en herencia java?

Hola a todos, esta es mi primera vez que pido ayuda en este foro y espero que puedan ayudarme a la brevedad posible porque tengo gran urgencia...

Les explico: Estoy desarrollando un sistema servidor con soporte a multiples clientes en java. Hasta ahora apenas vy por el desarrollo del servidor y mi dificultad en cocreto es mantener los datos de logueo (o sessión) en memoria con los cambios que las clases hijas puedan hacer, es decir, especificamente tengo una super clase denominada "Servidor" y una que hereda de ella denominada "Personas". Colocare las secciones del código que mestran la dificultad:
Código
  1. class Servidor {
  2.    /* Declaración de variables */
  3.    private   Escritorio    escritorio;
  4.    private   Escritorio    vstEscritorio;
  5.    private   Validador     validacion;
  6.    public    Icono         ico;
  7.    public    boolean       estadoSesion, foco;
  8.    //private String        pantallaActiva;
  9.    protected String[][]    validable;
  10.    //Variables de Sesion
  11.    public   boolean        autenticado;
  12.    public   int            idSesionServidor;
  13.    public   String         idUsuarioServidor;
  14.    public   String         privilegioUsuarioServidor;
  15.    public   String         nombreUsuarioServidor;
  16.    public   String         fechaSesionServidor;
  17.    public   String         horaSesionServidor;
  18.    //public   String        ultimaSesionUsuarioServidor;
  19.    public   HashMap        permisosUsuarioServidor;
  20.    //Constructores ...........................................................
  21.    public Servidor(){
  22.    }
  23.    public Servidor(String ini){
  24.        vstEscritorio = new Escritorio();
  25.        mostrarVista(vstEscritorio);
  26.        iniciarVariables();
  27.        escritorio.txtABitacora.setText(
  28.                                escritorio.txtABitacora.getText() +
  29.                                Bitacora.get(                                      
  30.                                        ">> Hola!, el servidor 'nombre del servidor' "
  31.                                        + "está activo.\n>> Por ahora sus "
  32.                                        + "servicios se encuentran apagados.",
  33.                                        this.nombreUsuarioServidor
  34.                                )
  35.                        );
  36.        if ( idSesionServidor != 0 ){
  37.            iniciarConectividad();
  38.        }else{
  39.            escritorio.txtABitacora.setText(
  40.                                escritorio.txtABitacora.getText() +
  41.                                Bitacora.get(                                      
  42.                                        ">> Se requiere Autenticación de Usuario",
  43.                                        this.nombreUsuarioServidor
  44.                                )
  45.                        );
  46.            autenticarUsuario();
  47.            System.out.println(this.nombreUsuarioServidor); // ---> AQUI NO MUESTRA EL NOMBRE DE USUARIO ACTUALIZADO. (E S T A   E S   L A   D I F I C U L T A D )
  48.            if ( autenticado == true ) {
  49.                escritorio.txtABitacora.setText(
  50.                                escritorio.txtABitacora.getText() +
  51.                                Bitacora.get(                                      
  52.                                        ">> Ya pueden iniciarse los servicios",
  53.                                        this.nombreUsuarioServidor   //--->OBVIAMENTE AQUI TAMPOCO MUESTRA EL DATO ACTUALIZADO
  54.                                )
  55.                        );
  56.            }
  57.        }
  58.    }
  59.    private void iniciarVariables(){
  60.        //Variables de sesion
  61.        autenticado = false;
  62.        idSesionServidor = 0; //Variable con el id de la sesion.....
  63.        idUsuarioServidor = "svr";
  64.        privilegioUsuarioServidor = "boot";
  65.        nombreUsuarioServidor = "Servidor";
  66.  
  67.    }
  68.    private void autenticarUsuario() {
  69.        CtrlPersonas vstLogin = new CtrlPersonas();
  70.        escritorio.txtABitacora.setText(
  71.                                escritorio.txtABitacora.getText() +
  72.                                Bitacora.get(                                      
  73.                                        ">> Abriendo el formulario de "
  74.                                        + "Autenticación de Usuario",
  75.                                        this.nombreUsuarioServidor
  76.                                )
  77.                        );
  78.        vstLogin.mostrarVistaLogin(escritorio);
  79.    }
  80. }
  81.  

Este es el constructor y el metodo del problema de la clase Persona que extiende a Servidor

Código
  1. //Constructor
  2.    public CtrlPersonas(){
  3.        super(); // ---->> COLOCANDO ESTA LÍNEA O SIN ELLA IGUAL MENTE PEDO acceder A LAS VARIABLES...
  4.        modPersonas = new ModeloPersonas();
  5.    }
  6.  
  7.  
  8. //Asi se modifican las variables, mismas que al intentar acceder al valor (que ahora deberia ser el colocado en este método) no lo mantiene y se obtiene es el valor original de la super clase
  9.  
  10.  
  11.   this.idUsuarioServidor = resultadoUsuario.getString("rif_personas");
  12.   this.nombreUsuarioServidor = resultadoUsuario.getString("pnombre_personas") + " " + resultadoUsuario.getString("papellido_personas") ;
  13.   this.privilegioUsuarioServidor = resultadoUsuario.getString("privilegio_personas");
  14.   this.fechaSesionServidor = Calendario.get("fecha", null);
  15.   this.horaSesionServidor = Calendario.get("hora", null);
  16.  
  17.  

Reitero, leer las variables desde la clase personas si se ve el cambio registrado pero, al regresar a la clase Servidor no... y creo que ya deberia hacerlo puesto que la clase servidor se mantiene activa en todo momento, de tal forma que las variables estan en memoria susceptibles a las modificaciones...

Pido, con humildad, su ayuda con urgeeeeeeeeeeeencia... porque de los expertos se aprende a serlo también... gracias de ante mano...

Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines