do seu source, conforme a configuracao do valor do parametro contextConfigLocation do web.xml:Aqui colocamos o mapeamento da servlet para /app/*, ou seja, todas as URLs com esse prefixo, serao direcionadas para a servlet do Spring. Outras URLs como /js, /css, /img, nao serao direcionadas.applicationContext.xml<?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" xmlns:mvc="http://www.springframework.org/schema/mvc" 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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:annotation-driven /> <context:component-scan base-package="com.naskar.springmvc"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>A configuracao do parametro context:component-scan base-package diz ao Spring para procurar por todas as classes anotadas com @Controller e @Service dentro dos pacotes e subpacotes com.naskar.springmvc.Depois disto, temos a configuracao do InternalResourceViewResolver, que estamos direcionando para um diretorio dentro de WEB-INF, assim as JSPs nao estarao disponiveis diretamente para o usuario e todas as requisicoes terao sempre que passar por algum Controller para serem exibidas.Se voce estiver usando maven, inclua as seguintes dependencias no seu arquivo pom.xml: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.8.0-SNAPSHOT</version> </dependency> </dependencies> <repositories> <repository> <id>codehaus-snapshots</id> <url>http://snapshots.repository.codehaus.org</url> </repository> </repositories>Caso nao, veja as referencias abaixo para efetuar o download das bibliotecas.Jackson sera necessario somente se voce quiser usar JSON. HomeAgora vamos criar o HomeController, que ira receber as requisicoes para as URLs do tipo /app/home:HomeController.java@Controllerpublic class HomeController { @RequestMapping("/home") public ModelAndView home() { ModelAndView mav = new ModelAndView(); mav.setViewName("home"); return mav; } @RequestMapping("/home/welcome") public ModelAndView welcome() { ModelAndView mav = new ModelAndView(); mav.setViewName("welcome"); mav.addObject("message", "Bem vindo!!!"); return mav; }}Para todas as classes que iremos usar como controllers, precisamos anota-las com @Controller, e para cada URL que queremos disponibilizar, utilizaremos a anotacao @RequestMapping, para fazer o mapeamento entre o path e o metodo a ser executado. Assim, temos:/app/homeSera executado o metodo home() e dispachada a requisicao para a pagina WEB-INF/jsp/home.jsp./app/home/welcomeSera executado o metodo welcome() e dispachada a requisicao para a pagina WEB-INF/jsp/welcome.jsp.home.jsp:<%@page deferredSyntaxAllowedAsLiteral="true"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link type="text/css" href="/springmvc/css/pepper-grinder/jquery-ui-1.8.16.custom.css" rel="stylesheet" /> <script type="text/javascript" src="/springmvc/js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="/springmvc/js/jquery-ui-1.8.16.custom.min.js"></script> <script> $(function() { // add the itens to content $("#HomeBtn").button().click(function() { $("#content").load("home/welcome"); }); // add the itens to content $("#itemBtn").button().click(function() { $("#content").load("item"); }); // init $("#content").load("home/welcome"); }); </script> </head> <body> <div id="menu" class="ui-widget"> <div> <input type="button" id="HomeBtn" value="Home" /> <input type="button" id="itemBtn" value="Item" /> </div> </div> <div id="content" style="margin: 10px;"> </div> </body></html>Podemos ve que a pagina e simples e clara. Usaremos jQuery para carregar as outras paginas dentro do DIV content, usando a seguinte funcao load:$("#content").load("item");Isso faz com o jQuery procure algum element com o id content, que no nosso caso e um elemento DIV, e carregue o conteudo da URL /app/item dentro do DIV.Logo acima, temos a adicao dos eventos click() dos botoes para executar os carregamentos das paginas.Dados para viewUm detalhe que precisamos perceber e que podemos passar dados para a view, utilizando o metodo addObject da classe ModelAndView, como e feito para a view welcome.Logo que a pagina e carregada, e executado um load para a URL welcome, que mostrara uma mensagem "Bem vindo!!!", essa incluida durante a execucao do HomeController:welcome.jsp<div id="welcome_conteudo"> <div id="welcome_conteudo" class="ui-dialog ui-widget ui-widget-content ui-corner-all undefined ui-resizable"> <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> <span id="ui-dialog-title-dialog" class="ui-dialog-title">Home</span> </div> <div