La siguiente es una descripción de resortes y puntales.
Distinguimos los dos conceptos por los siguientes aspectos:
1. Mecanismo: el punto de entrada de spring mvc es servlet, mientras que el punto de entrada de struts2 es filter.
Varios otros puntos de conocimiento:
"Filter"; implemente la interfaz javax.servlet.Filter, configure etiquetas en web.xml y especifique qué clase de implementación de Filter usar para filtrar cuál. Enlace URL. La inicialización solo ocurre cuando se inicia la página web. El proceso de filtrado es lineal. Una vez pasada y verificada la URL, se puede mantener el proceso original y continuar con el siguiente filtrado, recepción de servlet, etc. La función de filtro se puede utilizar para mantener el proceso continuado de la manera original. o para dominar el proceso, mientras que la función de servlet se utiliza principalmente para dominar el proceso.
Características: Los encabezados de Solicitud y Respuesta se pueden modificar antes de la respuesta. La solicitud solo se puede reenviar, pero la respuesta no se puede enviar directamente. Los filtros se pueden utilizar para filtrar la codificación de caracteres, detectar si el usuario ha iniciado sesión en el filtro, deshabilitar el almacenamiento en caché de la página, etc.
"Los procesos de servlet y servlet son muy cortos. Una vez pasada la URL, el servlet no continuará transmitiéndose. Se utiliza principalmente para controlar el proceso de negocio antes del procesamiento.
"Entonces el oyente ¿Paño de lana? Sabemos que los servlets y filtros se usan para URL, etc., mientras que los oyentes se usan para operaciones de objetos como la creación de sesiones, session.setAttribute y realizar acciones cuando ocurren tales eventos.
2. Rendimiento:
La primavera será ligeramente más rápida que los puntales. Spring Mvc es un diseño basado en métodos, mientras que struts es un diseño basado en clases. Struts es un diseño basado en clases.
Spring Mvc es un diseño basado en métodos, mientras que struts es un diseño basado en clases. Cada vez que se envía una solicitud, se creará una instancia de una acción y se inyectarán atributos en cada acción. -diseño basado en granularidad Más granular (el nivel granular está más sincronizado y bloqueado), pero tenga cuidado de contener los datos como lo haría en un control de servlet. Spring3 mvc es una interceptación a nivel de método. El método se intercepta de acuerdo con las anotaciones en los parámetros y los datos de la solicitud se inyectan en spring3 mvc. Un método en spring3 mvc corresponde a un contexto de solicitud. El marco de struts2 es una interceptación a nivel de clase. Cada vez que llega una solicitud, se crea una Acción y luego se llama al método setter getter para inyectar los datos en la solicitud. struts2 en realidad procesa la solicitud a través del método setter getter; un objeto Acción corresponde a un contexto de solicitud.
3. Paso de parámetros:
Struts puede aceptar parámetros con atributos, lo que muestra que los parámetros pueden ser utilizados por múltiples métodos.
4. Ideas de diseño:
¿Struts está más en línea con oop?
¿Struts está más en línea con op?
5. Mecanismo de implementación del interceptor: ¿Struts tiene su propio mecanismo interceptor, mientras que Spring MVC utiliza un método AOP independiente? Esto hace que el archivo de configuración de struts sea aún más grande que el de spring mvc. Aunque la configuración de struts se puede heredar, creo que es más conciso usar spring mvc. ¿La eficiencia de desarrollo de spring MVC es realmente mayor que la de struts2? Spring mvc es una interceptación a nivel de método. Un método corresponde a un contexto de solicitud y este método también corresponde a una URL. En términos de la arquitectura en sí, ¿es fácil para spring3 mvc implementar una URL relajante? Struts2 es una interceptación a nivel de clase, y una clase corresponde a un contexto de solicitud; es difícil implementar una URL tranquila, porque un método de acción de struts2 puede corresponder a una URL y su atributo de clase es compartido por todos los métodos, por lo que no puede; se le pasará una anotación u otro medio para identificar el método al que pertenece. Los métodos mvc de spring3 son básicamente independientes entre sí, comparten datos de respuesta de solicitud. Los datos de la solicitud se obtienen a través de parámetros y los resultados del procesamiento se devuelven al marco a través de ModelMap. Las variables no se comparten entre métodos, pero struts2 lo hace más confuso. Los métodos también son independientes entre sí, pero todas sus variables de acción son compartidas. Aunque esto no afecta la ejecución del programa, nos causa problemas para codificar y leer el programa.
6. Además, la verificación mvc de spring3 también es destacada. Es compatible con JSR303 y es más conveniente para manejar solicitudes ajax. ¿Solo una anotación? @ResponseBody luego devuelve directamente el texto de respuesta. Código:
@RequestMapping (value= "/whitelists" )?
¿público ?String?index(ModelMap?map)?{
¿Cuenta?¿Cuenta? =?accountManager.getByDigitId(SecurityContextHolder.get().getDigitId());?
Listlt;Groupgt;?groupList?=?groupManager.findAllGroup(account.getId());?
map.put("cuenta" ,?cuenta);?
map.put("listagrupo" ,?listagrupo);?
return ?"/grupo/grupo -index" ;?
}?
//?@ResponseBody?respuesta ajax, ¿también puede manejar fácilmente solicitudes Ajax?
@RequestMapping (value= " /whitelist/{whiteListId}/del" )?
@ResponseBody ?
público ?String?delete( @PathVariable ?Integer?whiteListId)?{
whiteListManager.deleteWhiteList(whiteListId); ?
return ?"éxito" ;?
}??