Artigo MVC Javamagazine

Olá pessoal estou lendo o artigo do Fernando Lozano na javamagazine nº20 sobre MVC e ele apresenta o seguinte exemplo:

capital.jsp:

[code]<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

Exemplo de Servlet com Forward para JSP

Escolha um estado do Brasil para saber sua capital:


Não sei a capital do estado ${param.estado} A capital do estado ${param.estado} é ${capital} [/code]

E a servlet:

[code]package javamagazine;

import java.io.;
import javax.servlet.
;
import javax.servlet.http.;
import java.util.
;

public class ServletCapital extends HttpServlet {
private static Map capitais = null;

public void init(){
	if (capitais == null){
		capitais = new HashMap();
		capitais.put("RJ", "Rio de Janeiro");
		capitais.put("SP", "São Paulo");
		capitais.put("MG", "Belo Horizonte");
		capitais.put("BA", "Salvador");
		capitais.put("PA", "Belém");
					
	}
}

public void doGet(HttpServletRequest request, 
	HttpServletResponse response)
		throws IOException, ServletException {
	
	processRequest(request, response);
}

public void doPost(HttpServletRequest request, 
	HttpServletResponse response)
		throws IOException, ServletException {
	
	processRequest(request, response);
}

public void processRequest(HttpServletRequest request,
	HttpServletResponse response)
		throws IOException, ServletException {
	
	String estado = request.getParameter("estado");
	String capital = (String)capitais.get(estado);
	request.setAttribute("capital", capital);
	request.getRequestDispatcher("/capital.jsp").forward(request, response);
}

}[/code]

Eu não entendi o seguinte como a jsp executa a Servlet? E como nessa linha eu consigo imprimir a capital [quote]A capital do estado ${param.estado} é ${capital}[/quote]

Voce acessa o Servlet, nao o jsp :wink:

Rafael

[quote=Rafael Steil]Voce acessa o Servlet, nao o jsp :wink:

Rafael[/quote]

Certo Rafael eu me enganei na pergunta,

<form action=“capital”> aqui então não seria ServletCapital ao invés de capital?

já vi aqui que o q depende de como eu especifico no web.xml,

Valeu e vcs poderia me falar como estou tendo acesso a variavel capital

O que vai no action eh o que esta mapeado no web.xml. La provavelmetne deve ter algo assim:

<servlet-name>Servlet Capital</servlet-name>
<servlet-class>bla.seilla.ServletCapital</servlet-class>
....
<servlet-mapping>
    <servlet-name>Servlet Capital</servlet-name>
    <url-pattern>/captical</url-pattern>
</servlet-mappign>

Ou seja, o que estiver no url-pattern eh o que vc deve usar.

Rafael

[quote=rocha]
Valeu e vcs poderia me falar como estou tendo acesso a variavel capital[/quote]

Eh soh ler o codigo fonte do Servlet:

request.setAttribute("capital", capital);

Rafael