Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Dúvida no Ex. 3 da Aula 1 - Servlet API e fundamentos da Web

Estou tentando executar a buscaEmpresa mas está dando o seguinte erro:

HTTP Status 404 - /gerenciador/busca

type Status report

message /gerenciador/busca

description The requested resource is not available.

Apache Tomcat/8.0.30

9 respostas

Raquel,

você colocou a Anotações antes da Classe ?

poste seu código para verificar o que está acontecendo .

Segue o código Celso

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet (urlPatterns="/busca")
public class BuscaEmpresa extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.println("<html><body>");
        writer.println("Resultado da busca:<br/>");
        String filtro = req.getParameter(filtro);
        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);
        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" +empresa.getId()+": "+ empresa.getNome()+"</li>");

        }
        writer.println("</ul>");
        writer.println("</html></body>");
    }

}
package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet (urlPatterns="/busca")

public class BuscaEmpresa extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.println("<html><body>");
        writer.println("Resultado da busca:<br/>");
        String filtro = req.getParameter(filtro);
        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);
        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" +empresa.getId()+": "+ empresa.getNome()+"</li>");

        }
        writer.println("</ul>");
        writer.println("</html></body>");
    }

}

Para fazer o teste você reiniciou seu tomcat ?

Sim, reiniciei até o computador... rsrs Reiniciei o tomcat novamente e funcionou agora! Problema entre o teclado e a cadeira! kkkk Abraços

Eu não consigo fazer o filtro funcionar. Estou digitando a URL http://localhost:8080/gerenciador/busca?filtro=doce , mas ele traz todos os resultados e não filtra.

Meu código está assim:

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet (urlPatterns="/busca")
public class BuscaEmpresa extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.println("<html><body>");
        writer.println("Resultado da busca:<br/>");
        String filtro = req.getParameter(filtro);
        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);
        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" +empresa.getId()+": "+ empresa.getNome()+"</li>");

        }
        writer.println("</ul>");
        writer.println("</html></body>");
    }

}

Na verdade ignora o que eu falei antes... O meu código do jeito q esta acima ele da esse erro na variável filtro: The local variable filtro may not have been initialized Nem consigo executar. mas o código está igual ao do video.

solução!

Raquel ,

Altere a seguinte linha :

String filtro = req.getParameter(filtro);

e coloque o filtro entre aspas , como o comando abaixo :

String filtro = req.getParameter("filtro");

Nossa, às vezes a gente não enxerga né... Parei o vídeo várias vezes na parte q ele mostra esse filtro e não vi que estava faltando as aspas! rsrsrs

Agora funcionou... Obrigada! :o)