我现在有一个很大的疑问,在我的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);
}
答案 0 :(得分:1)
如果您只想调用服务器进行验证,可以使用AJAX来调用服务器。如果验证失败,您可以将适当的消息返回给客户端,并使用javascript在GUI上显示它们。
对于使用AJAX更好地使用一些javascript库,会推荐JQUERY。
希望这有帮助。
干杯!!
答案 1 :(得分:1)
好的,我找到了解决方案..
有了这个:
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "www.google.es");
www.google.es将是一个页面,我可以告诉用户他做了任何不好的事情,这样你就可以告诉客户有什么不对劲,而你只需要服务器中的网页为此。
现在一切都解决了,如果验证不正确,我强迫数据库中的咨询失败,然后我的jsp ctach失败并从服务器发送警告消息。
这不是另一个servle来改变servlet的必要条件。
答案 2 :(得分:0)