从服务器到客户端的警报消息

时间:2013-07-17 13:31:13

标签: java servlets client alert

我现在有一个很大的疑问,在我的j2ee应用程序中,我在类中进行了一些验证,我在ddbb中进行咨询,我的问题是在某些情况下我需要向客户端发送警报消息,但是我认为这是不可能的,问题是我不能在部分或servlet中进行验证,因为验证是在不同的数据库中的不同咨询之间,然后我认为我必须硬编码我很少使用extrange验证,我的问题是......

我如何向客户发送提醒信息?

我通过了一些代码:

   public String [] modificarTablaAdmin (Connection conexion, String [] datosModificar){
        String [] resultado=new String[0];

        String modificacion = "";
        Statement stmt=null;
        String [] condicion = null;
        String[] condicionB=null;
        String dia="";
        String mes="";
        String condicionGeneral = null;
        String horas="";
        String minutos="";
        String annio = "";
        String segundos="";
        String ojo ="";
        String ojo2 ="";
        String base= null;
        int traza= 0;
        int mesInt = 0;

        ArrayList<String> elementos=new ArrayList<String>();


        Statement stmt2=null;
        Statement stmt3=null;
        String cadenaBusqueda = datosModificar (datosModificar);
        String [] condicionZ=cadenaBusqueda.split("ESTDEF");

        System.out.println("los importantes son"+ condicionZ[0]);
        System.out.println("los datos son"+ condicionZ[1]);

        String [] condicionW=cadenaBusqueda.split("'");
        System.out.println("el 0 dato es"+ condicionW[0]);
        System.out.println("el 1 dato es"+ condicionW[1]);
        System.out.println("el 2 dato es"+ condicionW[2]);
        System.out.println("el 3 dato es"+ condicionW[3]);
        System.out.println("el 4 dato es"+ condicionW[4]);
        System.out.println("el 5 dato es"+ condicionW[5]);
        System.out.println("el 6 dato es"+ condicionW[6]);
        System.out.println("el 7 dato es"+ condicionW[7]);


        String [] condicionZA=condicionZ[1].split("DESLOT");
        System.out.println("los importantes para otra validacion son"+ condicionZA[0]);
        System.out.println("los datos validacion de la muerte son"+ condicionZA[1]);
        String [] condicionZAW=condicionZA[1].split("'");

        System.out.println("el 0 dato es"+ condicionZAW[0]);
        System.out.println("el 1 dato es"+ condicionZAW[1]);
        System.out.println("el 2 dato es"+ condicionZAW[2]);
        System.out.println("el 3 dato es"+ condicionZAW[3]);
        System.out.println("el 4 dato es"+ condicionZAW[4]);

        try{

            stmt2 = conexion.createStatement();

            String q2 = "select estad from O02CSFE0.PAI_MAESTRA WHERE APLIC = '" + condicionW[3] + "' AND FORM = '" + condicionW[5] + "' AND VERS = '" + condicionW[7] + "'";

            System.out.println(q2);
            ResultSet rset2 = stmt2.executeQuery(q2);

            while (rset2.next())
            {
            ojo=rset2.getString("Estad");
            System.out.println ("ojoooooooooo  " + ojo);
            }

        }catch(SQLException e){
            e.printStackTrace();


        }finally{
        try{
            if(stmt2!=null){
                stmt2.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        }

        try{

            stmt3 = conexion.createStatement();

            String q3 = "select estad from O02CSFE0.PAI_MAESTRA WHERE APLIC = '" + condicionW[3] + "' AND FORM = '" + condicionW[5] + "' AND VERS = '" + condicionW[7] + "'";

            System.out.println(q3);
            ResultSet rset3 = stmt3.executeQuery(q3);

            while (rset3.next())
            {
            ojo2=rset3.getString("Tipfor");
            System.out.println ("ojoooooooooo nuevo " + ojo2);
            }

        }catch(SQLException e){
            e.printStackTrace();


        }finally{
        try{
            if(stmt3!=null){
                stmt3.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        }



        if ((ojo.equals("P")==true)||(ojo.equals("R")==true))
        {

        try{
            stmt = conexion.createStatement();
            //System.out.println("los datos de alta son completos:   " +  datosModificar(datosModificar));


            for (int i=0;i<datosModificar.length;i++)
            {
                //System.out.println("probando muy importante" + datosModificar[i]);

                condicionB=datosModificar[i].split("~");
                condicion=datosModificar[i].split("~");
                int entrada = 0;    

                if( condicionB[0].equals("NRBE")==true)     
                {
                condicionGeneral = condicionB[0] + " = '" +  condicionB[1] + "'";

                entrada = 1;
                }

                if (condicionB[0].equals("APLIC")==true)
                {
                    entrada = 1;
                    condicionGeneral += " and " + condicionB[0] +  "='" + condicionB[1] + "'";


                }

                if (condicionB[0].equals("FORM")==true)
                {
                    entrada = 1;
                    condicionGeneral += " and " + condicionB[0] +  "='" + condicionB[1] + "'";
                }

                if (condicionB[0].equals("VERFOR")==true)
                {
                    entrada = 1;
                    condicionGeneral += " and " + condicionB[0] +  "='" + condicionB[1] + "'";
                }

                if(condicionB[0].equals("TIPPAP")==true)
                {

                    if((condicion[1].equals("AA")==true)||(condicion[1].equals("AC")==true)||(condicion[1].equals("NE")==true)||(condicion[1].equals("NC")==true))
                    {
                        if (ojo2.equals("04")==true)

                        {
                            traza = 1;
                        }                                   
                    }

                    if((condicion[1].equals("AB")==true)||(condicion[1].equals("NF")==true))
                    {
                        if (ojo2.equals("12")==true)

                        {
                            traza = 1;

                        }                                   
                    }

                    if((condicion[1].equals("AG")==true)||(condicion[1].equals("NG")==true))
                    {
                        if (ojo2.equals("11")==true)

                        {
                            traza = 1;
                        }                                   
                    }



                }


                if (entrada==0)
                {

                    modificacion+= condicion[0] + "='" + condicion[1] + "',";
                }

            }

                Calendar c = Calendar.getInstance();

                annio = Integer.toString(c.get(Calendar.YEAR));

                if(c.get(Calendar.DATE)<10)
                {
                    dia = "0" + Integer.toString(c.get(Calendar.DATE));
                }   
                else
                {
                    dia = Integer.toString(c.get(Calendar.DATE));
                }

                mesInt = c.get(Calendar.MONTH);
                mesInt = mesInt + 1;

                if (mesInt == 13)
                    {
                        mesInt = 1;

                    }

                if(mesInt<10)
                    {
                    mes = "0" + Integer.toString(mesInt);
                }   
                else
                {
                    mes = Integer.toString(mesInt);
                }

                if(c.get(Calendar.HOUR_OF_DAY)<10)
                {
                    horas = "0" + Integer.toString(c.get(Calendar.HOUR_OF_DAY));
                }   
                else
                {
                    horas = Integer.toString(c.get(Calendar.HOUR_OF_DAY));
                }

                if(c.get(Calendar.MINUTE)<10)
                {
                    minutos = "0" + Integer.toString(c.get(Calendar.MINUTE));
                }   
                else
                {
                    minutos = Integer.toString(c.get(Calendar.MINUTE));
                }

                if(c.get(Calendar.SECOND)<10)
                {
                    segundos = "0" + Integer.toString(c.get(Calendar.SECOND));
                }   
                else
                {
                    segundos = Integer.toString(c.get(Calendar.SECOND));
                }

            String horaTotal = (horas  + minutos  +segundos);
            String fecha = (annio + mes + dia);
            String modificaciones= "FECMOD = '" + fecha + "', HORMOD = '" + horaTotal + "'";
            String q = "update O02CSFE0.PAI_ADMINISTRACION set " + modificacion + modificaciones + " where "  + condicionGeneral;

            /*JOptionPane.showMessageDialog( null, q );*/

            System.out.println(q);
            if (traza == 1)
            {
            ResultSet rset = stmt.executeQuery(q);
            resultado=new String[elementos.size()];
            }
            else
            {


                System.out.println("NI POR PETERRRRRRRRRR");

            }


        }catch(SQLException e){
            e.printStackTrace();


        }finally{
        try{
            if(stmt!=null){
                stmt.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }}
        else 
        {

            System.out.println("valor no modificables");
            resultado=new String[0];

        }


        return elementos.toArray(resultado);
    } 

3 个答案:

答案 0 :(得分:1)

如果您只想调用服务器进行验证,可以使用AJAX来调用服务器。如果验证失败,您可以将适当的消息返回给客户端,并使用javascript在GUI上显示它们。

对于使用AJAX更好地使用一些javascript库,会推荐JQUERY。

http://jquery.com/

希望这有帮助。

干杯!!

答案 1 :(得分:1)

好的,我找到了解决方案..

有了这个:

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "www.google.es");

www.google.es将是一个页面,我可以告诉用户他做了任何不好的事情,这样你就可以告诉客户有什么不对劲,而你只需要服务器中的网页为此。

现在一切都解决了,如果验证不正确,我强迫数据库中的咨询失败,然后我的jsp ctach失败并从服务器发送警告消息。

这不是另一个servle来改变servlet的必要条件。

答案 2 :(得分:0)