Fórum Variáveis de um HTML para um Servlet #394499

26/01/2011

0

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

Responder

Posts

26/01/2011

Pjava

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

Responder

Gostei + 0

26/01/2011

Marco Maria

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.
Responder

Gostei + 0

26/01/2011

Marco Maria

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


Responder

Gostei + 0

26/01/2011

Pjava

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.
Responder

Gostei + 0

11/02/2011

Dyego Carmo

Sem duvidas...
utilize o resulset para isto :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar