Pregunta

cuando dicen que el controlador de acciones en el marco de struts tiene múltiples subprocesos, ¿significa que hay varias instancias del servlet que toman la solicitud y la reenvían al modelo?¿O significa que hay una única instancia que acepta todas las solicitudes?Cualquier imagen será apreciada.

¿Fue útil?

Solución

Como ocurre con la mayoría de los demás servlets, se crea un hilo separado para procesar cada solicitud.Tienes que implementar el SingleThreadedModel interfaz para obtener una nueva instancia del servlet para cada solicitud.

Otros consejos

ver http://struts.apache.org/1.x/userGuide/building_controller.html

El servlet del controlador de Struts crea solo una instancia de su clase Acción y utiliza esta instancia para atender todas las solicitudes.Por lo tanto, es necesario escribir clases de acción seguras para subprocesos.Siga las mismas pautas que usaría para escribir servlets seguros para subprocesos.Aquí hay dos pautas generales que lo ayudarán a escribir clases de acción escalables y seguras para subprocesos:

  • Utilice sólo variables locales - El principio más importante que ayuda en la codificación segura para subprocesos es utilizar solo variables locales, no variables de instancia, en tu clase de Acción.Las variables locales se crean en una pila asignada (por su JVM) a cada hilo de solicitud, por lo que no hay necesidad de preocuparse por compartirlas.Una acción se puede factorizar en varios métodos locales, siempre que todas las variables necesarias se pasen como parámetros del método.Esto garantiza la seguridad de los subprocesos, ya que la JVM maneja dichas variables internamente utilizando la pila de llamadas que está asociada con un único subproceso.

  • Conservar recursos - Como regla general, asignar recursos escasos y mantenerlos entre solicitudes del mismo usuario (en la sesión del usuario) puede causar problemas de escalabilidad.Por ejemplo, si su aplicación usa JDBC y asigna una conexión JDBC separada para cada usuario, probablemente tendrá algunos problemas de escalabilidad cuando su sitio aparezca repentinamente en Slashdot.Debe esforzarse por utilizar grupos y liberar recursos (como conexiones de bases de datos) antes de reenviar el control al componente Ver apropiado, incluso si un método de bean al que ha llamado arroja una excepción.

los puntales 1 no son seguros para subprocesos;pero en cuanto a strus 2, es una instancia por solicitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top