Ajuda[+MVC][+Esclarecimento sobre algumas partes]

2 respostas
A

Fala galera blz ?

Seguinte,

Estou estudando Servlet & JSP pelo livro de mesmo nome :lol:

E estou no capítulo 3, aonde tem uma aplicação pequena com MVC, segue abaixo a mesma e minhas dúvidas.

<html>
  <body>
      <h1 align="center">Selecione seu jogo</h1>
      <form method="post" action="Playstation3"><p>
      Selecione o melhor jogo do PS3 na sua opini&atilde;o.<p>
      Jogos:
          <select name="jogos" size="1">
              <option>
              <option>Metal Gear Solid 4: Guns Of The Patriots
              <option>Call Of Duty 4: Modern Warfare
              <option>GTA IV
              <option>Gran Turismo 5 Prologue
              <option>Uncharted: Drake's Fortune
          </select>
          <br><br>
              <center>
                  <input type="Submit" value="Enviar">
              </center>
          </form>
      </body>
  </html>
Bom, cara vai escolher algum jogo ai e quando ele clicar no "Enviar", o container irá chamar meu Servlet "Playstation3", mas na verdade não tenho nenhum Servlet com nome de Playstation3, na verdade ele se chama...
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jogo</servlet-name>
        <servlet-class>com.example.web.SelectGames</servlet-class>
        </servlet>
    <servlet-mapping>
        <servlet-name>Jogo</servlet-name>
        <url-pattern>/Playstation3</url-pattern>
    </servlet-mapping>
    </web-app>

Depois disso Container vai chamar o Servlet, passando para ele oq o "cara" escolheu anterior (No formulario)

package com.example.web;

import com.example.model.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

/**
 *
 * @author Ademir Franco
 */
public class SelectGames extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    public void doPost (HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String g = request.getParameter("jogos");
        
        GameExpert be = new GameExpert();
        List result = be.getBrands(g);
        request.setAttribute("styles", result); // Adiciona a resposta do modelo  ao objeto solicitação
                                               //1º String, 2º Objeto
        
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        // Pedindo página JSP ???
        
        view.forward(request, response);
        }
    }
Na linha
List result = be.getBrands(g);
Estou chamando meu modelo e passando para ele por parametro oq o "cara" escolheu anteriormente...Meu modelo vai "processar" o parametro e retornar a opinião de acordo com oq foi escolhido.
package com.example.model;

import java.util.*;
/**
 *
 * @author Ademir Franco
 */
public class GameExpert {
    public List getBrands(String jogos) {
    List brands = new ArrayList();
    if (jogos.equals("")) {
        brands.add("Legal você em...Mas esse jogo não existe hehehe.");
    } 
    if (jogos.equals("Metal Gear Solid 4: Guns Of The Patriots")) {
        brands.add("Melhor jogo de todos os tempos, sem dúvida nenhuma.");
    }
    
   if (jogos.equals("Call Of Duty 4: Modern Warfare")) {
       brands.add("Segundo melhor jogo de tiro de todos os tempos, o primeiro é <b>Socom</b>, sem dúvida.");
   }
   if (jogos.equals("GTA IV")) {
       brands.add("GTA IV, único.");
    }
   if (jogos.equals("Gran Turismo 5 Prologue")) {
       brands.add("Melhor jogo de corrida...Exclusividade by Sony.");
   }
   if (jogos.equals("Uncharted: Drake's Fortune")) {
       brands.add("Um dos melhores jogos da nova geração...exclusividade by Sony novamente.");
   }
    return (brands);    
 }
}

Vai retornar a resposta para meu Servlet ("Colado acima")

No meu Servlet temos

request.setAttribute("styles", result); // Adiciona a resposta do modelo  ao objeto solicitação
                                               //1º String, 2º Objeto
        
        RequestDispatcher view = request.getRequestDispatcher("result.jsp");
        // Aqui ele está criando um objeto chamado View do tipo RequestDispatcher e ??? não entendi
        
        view.forward(request, response);
         E  essa linha ele envia para o JSP a solicitação e a resposta ?
        }
    }

JSP

<%@ page import="java.util.*" %>
<html>
    <head>
        <title>JSP Page</title>
    </head>
    <body>
        <h1 align="center">Comentários sobre o Jogo "JSP" </h1>
        <p>
            <% 
            List styles = (List)request.getAttribute("styles");
            Iterator it = styles.iterator();
            while(it.hasNext()) {
                out.print("<br>Opinião: " + it.next());
                }
            %>           
    </body>
</html>

Oq exatamente faz esses.

Iterator it = styles.iterator();
hasNext

??

Valeu galera e desculpa postar 3000 linhas de código.

2 Respostas

marciogreison

Olá amigo,
Esta linha: “Iterator it = styles.iterator();” cria um objeto para que possamos referenciar os de elementos da lista criada anteriormente.
e este metodo: “hasNext()” me retorna se ainda existe proximo elemento da lista, ou seja:
enquanto ouver um proximo item na lista: "out.print(“
Opinião: " + it.next()
);”

Um Abraço,

C

preciso saber o faço para resolver um probleminha no netbeans 6.1, "ele diz que não foi possivel acessar a URL atraves do navegar externo

Criado 30 de agosto de 2008
Ultima resposta 31 de ago. de 2008
Respostas 2
Participantes 3