Uma classe de Controle do Spring MVC possui metodos tratadores para requisicoes de usuario. Utiliza a anotacao de classe @Controller e possui a anotacao @RequestMapping que pode ser aplicada em nivel de classe ou metodo. Em nivel de classe mapeia uma URL para a classe de controle e, entao, um metodo particular HTTP mapeia para cada metodo do controle.Controle interpreta a entrada do usuario e a transorma dentro de um modelo que e apresentado ao usuario atraves de uma view. package ... ; ... import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.ui.Model; @Controller @RequestMapping("/welcome") public class WelcomeController { @RequestMapping(method = RequestMethod.GET) public String welcome(Model model) { Date today = new Date(); model.addAttribute("today", today); return "welcome"; } }O exemplo acima e um controle do Spring MVC, mapeado com a anotacao @Controller. O primeiro @RequestMapping e usado em nivel de classe para especificar que qualquer requisicao recebida para /welcome sera atendida por este controle. O segundo @RequestMapping e usado em nivel de metodo e, nesse caso, atende qualquer requisicao HTTP GET. No caso, este metodo e o metodo default para este controle e toda requisicao recebida para /welcome sera direcionada para o metodo welcome(Model model). No caso deste controle, se nenhum metodo HTTP GET default fosse declarado, a excecao ServletException seria lancada.Uma variacao deste comportamento seria declarar ambos os valores no metodo: @Controller public class WelcomeController { @RequestMapping(value = "/welcome", method=RequestMethod.GET) public String welcome(Model model) { ...Um outro exemplo de metodo tratador no controle pode ser visto abaixo. Ele recebe todas as requisicoes HTTP POST enviadas para o controle, normalmente enviadas pelo usuario apos submeter um HTML form, alem de dois parametros de entrada. O primeiro e @RequestParam("courtName") String courtName, usado para extrair o parametro de requisicao chamado courtName. O segundo parametro e Model model, usado para definir um objeto que podemos passar dados e retornar para a view. Na execucao do metodo, uma variavel chamada reservations e adicionada ao objeto Model, tornando-se disponivel para retornar a visao para ser apresentada ao usuario e o metodo finaliza com um retorno para a view reservationQuery, indicada pela string de retorno. @RequestMapping(method = RequestMethod.POST) public String sumbitForm(@RequestParam("courtName") String courtName, Model model) { List reservations = java.util.Collections.emptyList(); if (courtName != null) { reservations = reservationService.query(courtName); } model.addAttribute("reservations", reservations); return "reservationQuery"; }Para habilitar auto deteccao das classes de controle anotadas na sua aplicacao, e necessario configurar o contexto do Spring informando o pacote base das classes de controle, conforme pode ser visto ne exemplo abaixo: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package= "org.springframework.samples.petclinic.web"/> <!-- ... --> </beans> Como estruturas de controle sao praticamente parecidas nas linguagens, abaixo encontram-se exemplos e pequenas observacoes sobre o assunto:1 - If:>>> x = int(raw_input("Please enter an integer: "))Please enter an integer: 42>>> if x < 0:... x = 0... print 'Negative changed to zero'... elif x == 0:... print 'Zero'... elif x == 1:... print 'Single'... else:... print 'More'...More2 - For:>>> a = ['cat', 'window', 'defenestrate']>>> for x in a:... print x, len(x)Abaixo, um exemplo que altera a lista enquanto ocorre o