Artigo MVC Javamagazine

5 respostas
rocha

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

capital.jsp:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html><body>

<h1>Exemplo de Servlet com Forward para JSP</h1><p>
Escolha um estado do Brasil para saber sua capital:

<form action="capital">
	<input type="text" name="estado" size="3" maxlength="2" value="${param.estado}">
	<input type="submit" value="OK">
	<c:if test="${!empty param.estado}">
		<hr>
		<c:if test="${empty capital}">
			Não sei a capital do estado ${param.estado}
		</c:if>
		<c:if test="${!empty capital}">
			A capital do estado ${param.estado} é ${capital}
		</c:if>
	</c:if>
</form>
</body></html>

E a servlet:

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);
	}
}

Eu não entendi o seguinte como a jsp executa a Servlet? E como nessa linha eu consigo imprimir a capital

A capital do estado ${param.estado} é ${capital}

5 Respostas

Rafael_Steil

Voce acessa o Servlet, nao o jsp :wink:

Rafael

rocha

Rafael Steil:
Voce acessa o Servlet, nao o jsp :wink:

Rafael

Certo Rafael eu me enganei na pergunta,

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

rocha

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

Rafael_Steil

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

Rafael_Steil

rocha:

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

Eh soh ler o codigo fonte do Servlet:

request.setAttribute("capital", capital);

Rafael

Criado 14 de março de 2005
Ultima resposta 14 de mar. de 2005
Respostas 5
Participantes 2