Variáveis de um HTML para um Servlet

Java

26/01/2011

Fiz funcionar uma pequeno exemplo meu. Só que eu fixei os parâmtros dos argumentos de meu método. Agora ao pressionar o botão Enviar(SUBMIT), gostaria de que os valores dentro do Edit, fosse como parâmetros para os argumentos em meu métod, que são chamados de dentro de um servlet. Abaixo os códigos do HTML e do ServLet.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Calcula Números Primos</title>
</head>
<body>
    <center><h2>Calcular Números Primos Por Faixa</h2></center>
    <form method="POST" action="calcula.do">
        Número inicial: <input type="text" name="edtIncial"/><br><br>
        Número final:   <input type="text" name="edtFinal"/><br><br>
        <input type="SUBMIT" name="btnEnviar" value="Enviar"/>
    </form>
</body>
</html>

e meu servlet
package com.classes.primo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * Servlet implementation class Calcula_Primo
 */
public class Calcula_Primo extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Calcula_Primo() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("O(s) números primos são os abaixo....<br><br>");
        Primo_Faixa cp = new Primo_Faixa();
        out.println(cp.CalcFaixaPrimo(1, 99));//Aqui dever entrar os parâmetros e não fixo como estão
    }    

}

Pjava

Pjava

Curtidas 0

Respostas

Pjava

Pjava

26/01/2011

Resolvi assim:
int inicio = Integer.parseInt(request.getParameter("edtIncial"));  
        int fim = Integer.parseInt(request.getParameter("edtFinal"));  
        out.println(cp.CalcFaixaPrimo(inicio, fim));

GOSTEI 0
Marco Maria

Marco Maria

26/01/2011

Paulo,
para utilizar os valores passados na sua página em seu servlet você deverá utilizar o método getParameter da interface HttpServletRequest. A assinatura desse método é String getParameter(String name)
Ele permite obter os valores passados a partir dos nomes dos campos de entrada, portanto seu código ficaria parecido com algo assim:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

       try {
             int valorInicial = Integer.parseInt(request.getParameter("edtIncial"));
             int valorFinal = Integer.parseInt(request.getParameter("edtIncial"));
                out.println("O(s) números primos são os abaixo....<br><br>");
             Primo_Faixa cp = new Primo_Faixa();
             out.println(cp.CalcFaixaPrimo(valorInicial, valorFinal));
        }catch(NumberFormatException nfex) {
                out.println("Falha ao obter faixas de valores: "+nfex.getMessage());
        }
                     


espero ter ajudado um pouco.
GOSTEI 0
Marco Maria

Marco Maria

26/01/2011

Corrigindo a formatação anterior....

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

       try {
             int valorInicial = Integer.parseInt(request.getParameter("edtIncial"));
                int valorFinal = Integer.parseInt(request.getParameter("edtIncial"));              out.println("O(s) números primos são os abaixo....<br><br>");              Primo_Faixa cp = new Primo_Faixa();              out.println(cp.CalcFaixaPrimo(valorInicial, valorFinal));         }         catch(NumberFormatException nfex) {                 out.println("Falha ao obter faixas de valores: "+nfex.getMessage());         }


GOSTEI 0
Pjava

Pjava

26/01/2011

Ficou mais profissional com um Try...Catch. Agora uma pergunta: É possível retornar isso tudo dentro de uma tabela? Tipo Grid? Nesse momento meu próximo passo é gravar isso num BD, usando Hibernate. Estou lendo para depois tentar gravar. Estou fazendo outros exemplos.
GOSTEI 0
Dyego Carmo

Dyego Carmo

26/01/2011

Sem duvidas...
utilize o resulset para isto :)
GOSTEI 0
POSTAR