Spring MVC Flashcards
Describe el flujo de peticion y respeusta en spring MVC
Tenemos un cliente que realiza una peticion, despues ira a los servlet y por medio de un dispatcher servlet va a enviar al controller especifico, ese controller se comunica con la capa de negocio la cual nos regresa un modelo, el cual llega al controlador y este delega al dispatcher servlet para que resuelva la vista por medio de un view template , una vez que la vista esta lista esta regresa al dispacher servlet y esta la presenta a al usuario final en su pantalla

A que se refiere dispatcher servlet
Es nuestro primer punto de entrada para nuestra applicacion de aqui va a delegar a los controladores de spring
Que es un controller en spring
Implementa el patron de diseño command para que maneje peticiones y respuestas a que vistas rutea
Que es request mapping
Es la url y el tipo A que vista esta atada cierta peticion
View Resolver
Es el mecanismo por el cual vamos a encontras la vista, por ejemplo JSP p velocity o alguna otra
Para que se usa servlet-config.xml
Para configurar el servlet dispatcher
Para que sirve el InternalResourcesViewResolver
Sirve para buscar la vista en WEB-INF por medio de un prefijo y un sifijo
Que pasa si no se especifica la locacion de la configuracion
Por defult va a buscar un archivo de configuracion llamado con el mismo nombre de la aplicacion,por eso es importante soreescribir ese comportamiente, esto se hace de la siguiente manera <initparam><param></param>
</initparam>
Que se especifica en el web.xml
Se especifica el dispatcher servlet y el mapeo de recursos que va a estar despachando el dispatcher por ejemplo *.html o *.jsp, tambien aqui se pone a el contextConfigLocation, es decir donde esta nuestro servlet-config.xml

Que se especifica en el servler.config.xml
Se especifica de donde se va a escanear y que se va a utilizar por ejemplo la las anotaciones para la configuracion

Cuales son las responsabilidades del controller
Se manejan las vistas, incluso se debe de manejar las excepciones en esta capa ya que esta nos va a redirigir a una pagina dada para la excepcion
Cuales son las responsabilidades de los services
Garantizar que los objetos esten en un estado valido. es donde inician las transacciones
De que se encargan los repositorios
Se encargan de comunicarse con un datasource
Cual es la diferencia entre Model y ModelAttribute
ModelAttribute esta ligado a un objeto directamente, nos sirve para binding el objeto y model es todo el modelo cuando lo ponemos como parametro es un apuntador a todo nuestro modelo
Que son los resouce bundle views
Son mecanismos que nos da spring para que podamos aceptar contenidos por ejemplo xml, jsp etc
Cual es la diferencia entre redirect y forward
redirect solo vive durante la peticion, una vez que termina ya no tiene el contexto que que fue lo que paso, es similar a los threads y el happend before, ya no tiene nocion por que no existe ese link un ejemplo de uso es por ejemplo cuando no queremos que le den atras al boton, y forward va a salir de nuestro framework y va a hacer la peticion hacia donde estamos indicando que haga el forward, es como si manualmente accddieramos a esa url tambien forward tenemos que especificar la extension ejemplo forward:addMinutes.html y tiene que matcheatr con lo que estamos mapeando ,en redirect tambien hay que especificar extension
Como se pueden externalizar los mensajes en una aplicacion que usa i18n
Si tenemos una validacion que usa por ejemplo @Min(1), en el archivo properties podemos sobreescribir el mensaje por default de la siguiente manera
Min.objetoBindieado.propiedad=”mesaje”, para esto se deben de usar las libs de spring.tld en conjunto con los messages properties
Que tipos de tags tiene spring
spring.tld y spring-form.tld el primero es para internalizacion de mensajes por ejemplo y el segundo es un mirror de un formulario html
Como podemos hacer algo antes y despues de una peticion
Por medio de interceptores y una propiedad que este atada a este interceptor en la pagina, en este caso la variable es language y el valior sera inyectado por medio de esta configuracion

Si tenemos un metodo sin httpSession y lo introducimo, rompemos el contrato?
No, el comportamento de spring nos permite agregar este parametro a los metodos del controlador con la facilidad de que no romperemos el contrato, al parecer tiene por default esa sobreescritura