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

[SOLUCIONADO] Problemas concurrencia en servlets?

Estas en el tema de Problemas concurrencia en servlets? en el foro de Java en Foros del Web. Hola. Estoy creando algunos servlets Java que contienen código repetido y me gustaría poder poner todo ese código repetido en métodos para tener el código ...
  #1 (permalink)  
Antiguo 01/07/2016, 15:33
 
Fecha de Ingreso: febrero-2013
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Problemas concurrencia en servlets?

Hola.

Estoy creando algunos servlets Java que contienen código repetido y me gustaría poder poner todo ese código repetido en métodos para tener el código más limpio.

El problema es que he leído que los servlets dan problemas de concurrencia cuando nos salimos de un método y no es posible controlarla correctamente.

¿Es esto verdad?

¡Gracias!
  #2 (permalink)  
Antiguo 04/07/2016, 01:10
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Problemas concurrencia en servlets?

Buenas,

Los servlets no dans problema de concurrencia por el hecho de crear un metodo. Hay que ver el caso concreto.

Lo importante es entender como funcionan.
Segun la especification (http://download.oracle.com/otndocs/j...-fr-oth-JSpec/) el contenedor de servlet puede crear una o varias instancias del servlet a partir de las cuales creara threads para procesar las peticiones.

Esto puede dar muchos problemas de concurrencia si, por ejemplo, usamos dentro del servlet variables de instancia o metodos que dependen de un estado.

Sin embargo, en tu caso, para solutionar tu problema de redundancia de codigo solo necesitarias crear metodos estaticos stateless, por lo que no tendra ningun riesgo en cuanto a concurrencia.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 04/07/2016, 12:56
 
Fecha de Ingreso: febrero-2013
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problemas concurrencia en servlets?

Gracias, Profesor_Falken!

Lo único que me gustaría saber es ¿cómo se declara un método estático stateless? Ahora mismo no sé a qué te refieres...

Gracias
  #4 (permalink)  
Antiguo 05/07/2016, 05:13
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Problemas concurrencia en servlets?

Buenas,

Un metodo "stateless" es un metodo que no depende del estado de la clase (de sus variables de instancia).
Para declararlo simplemente hazlo static:

Código Java:
Ver original
  1. private static void/String/loquesea miMetodo(misparametros) {...}

y dentro introduce el codigo que quieres reutilizar, siempre teniendo en cuenta que no deberias pasarle como parametro una variable que pueda cambiar el estado del servlet.

Si quieres, postea el codigo una ver lo tengas listo.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 06/07/2016, 12:31
 
Fecha de Ingreso: febrero-2013
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problemas concurrencia en servlets?

Muchas gracias, Profesor_Falken!

Ha quedado todo claro, no es necesario el ejemplo ;)

Un saludo.

Etiquetas: concurrencia, servlet
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 09:59.