Foros del Web » Programación para mayores de 30 ;) » Java »

detener la ejecución de un jsp

Estas en el tema de detener la ejecución de un jsp en el foro de Java en Foros del Web. Hola a todos! En php existe la instrucción die(); que detiene la ejecución de un script y el servidor no interpreta el resto del codigo ...
  #1 (permalink)  
Antiguo 06/10/2009, 18:06
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
detener la ejecución de un jsp

Hola a todos!
En php existe la instrucción die();
que detiene la ejecución de un script y el servidor no interpreta el resto del codigo
Como puedo lograr similar comportamiento en jsp.
Intente System.exit(0);
pero me cierra el servidor!
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 07/10/2009, 00:57
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: detener la ejecución de un jsp

La verdad que no entiendo básicamente a qué te refieres. Jsp no es un script, sino una página html con código java embebido, con lo cual su comportamiento difiere bastante. El html se va a mostrar siempre, a menos que lo vayas incrustando desde el propio java, cosa que no se suele hacer demasiado.

De todos modos para controlar que java detenga el flujo tienes el uso de excepciones, y normalmente, lo que se hace con ellas es, elegantemente, que redirijan la jsp a otra jsp de error, en el que en todo caso, se muestra un mensaje personalizado con el tipo de excepción encontrado, o si no se quiere complicar uno la vida, un mensaje genérico de error.

Otra forma de detener un método java es que en un momento dado, retorne un boolean, si por ejemplo no se dan unas condiciones que se requiere para el funcionamiento correcto.

Public boolean funcionSistema(args) {
if(!cond1 || !cond2 || ... !condN) {
return false;
}
etc etc;
return true;
}
Al principio de este método verificaría las condiciones y devolvería un false si no se cumplen y no seguiría ejecutandose.
  #3 (permalink)  
Antiguo 07/10/2009, 05:39
 
Fecha de Ingreso: septiembre-2009
Ubicación: Madrid
Mensajes: 16
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: detener la ejecución de un jsp

doylelives lo que pides es una pregunta "abierta"... es decir tendrias que acotar mas:

- ¿Quieres detener la carga y que se vea lo visualizado hasta entonces?
- ¿quieres detener la carga y redireccionar al cliente?
...

System.exit() obviamente cierra el servidor al cerrar la JVM.

Lo mas parecido al die de php quizas sea lanzar una excepcion y capturarla al final del jsp... pero bufff, no se, no se... huele a chapu

Última edición por raullapeira; 07/10/2009 a las 05:45
  #4 (permalink)  
Antiguo 07/10/2009, 09:49
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: detener la ejecución de un jsp

Tengo entendido que si usara excepciones solo me mostraria en la pantalla el mensaje de error que capturó.
Yo deseo que en un jsp me muestre todo el html y html generado por java(ejemplo un table con datos que cargo con una función)
hasta que yo llegue una instrucción determinada llamemosle die, y que el resto del codigo yo no lo interprete, o sea que muestre el html que se generó hasta la instrucción "die"
__________________
I am Doyle please insert code.
  #5 (permalink)  
Antiguo 07/10/2009, 10:30
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: detener la ejecución de un jsp

Como dije, eso no es exactamente el concepto de una página jsp, sino que se haría con una clase java que genere html y que incluya variables java o cosas así en el código generado.

en el punto donde quieras hacer ese supuesto die tendrías

try {
//métodos para generar el código html a partir del punto correspondiente
... etc
}
catch (Exception ex) {
//método para generar los tags de cierre directamente si se produce una excepción en el try
}

Si el cierre no se produce por una excepción, simplemente con que se active un boolean y entre por el if del boolean que maneje los tags de cierre, y si no está el boolean activado se vaya por el else con los otros métodos.

De todos modos estoy de acuerdo con raullapeira. Es una chapuza. No hay que intentar que tu código se parezca al de otro lenguaje diferente. Hay que hacer las cosas pensadas para el lenguaje en el que se realizan.
  #6 (permalink)  
Antiguo 07/10/2009, 12:41
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: detener la ejecución de un jsp

Cita:
Iniciado por raullapeira Ver Mensaje
... pero bufff, no se, no se... huele a chapu
De hecho ... la instrucción die() de PHP es ya una chapuza en si misma.
(Como la instrucción End de Visual Basic 6)

Cita:
Iniciado por doylelives Ver Mensaje
... hasta que yo llegue una instrucción determinada llamemosle die, y que el resto del codigo yo no lo interprete, o sea que muestre el html que se generó hasta la instrucción "die"
Eso es cuestión directamente de buenas prácticas y algoritmos de programación. Un ejemplo:

Pésimo algoritmo:
Begin
A = 5
If A > 5 Then Die()
Print A
End

Buen algoritmo:
Begin
A = 5
If A <= 5 Then Print A
End

Y en última instancia, después de cotejar todas las posibilidades, agregar el manejo de errores con try / catch; para errores 'no controlados'.

Cita:
Iniciado por Fuzzylog Ver Mensaje
... sino que se haría con una clase java que genere html y que incluya variables java o cosas así en el código generado. ...
Mmmm... no es eso exactamente un JSP al final ?
javac myjsp.jsp ?

Cita:
Iniciado por Fuzzylog Ver Mensaje
No hay que intentar que tu código se parezca al de otro lenguaje diferente. Hay que hacer las cosas pensadas para el lenguaje en el que se realizan.
Todos los lenguajes deben de aplicar buenas practicas de programación y los algoritmos no cambian, solo cambian el lenguaje y la forma de expresar las cosas.

En PHP se usa die(), porque PHP era un lenguaje de 4 generación sin manejo de excepciones hasta hace poco tiempo (es decir, no tenía try/catch y no estaba orientado a objetos), ahora ya lo implementaron.

Saludos,
  #7 (permalink)  
Antiguo 30/08/2012, 13:29
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Respuesta: detener la ejecución de un jsp

Simplemente return();
Con eso basta.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:39.