Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kinhas

HREF chamando Servlet - Tela em branco

Recommended Posts

Bom dia pessoa,

 

Estou procurando a uns 2 ou 3 dias mas ainda não consegui achar uma solução.

 

Eu tenho uma página em JSP e nela eu tenho um link que chama uma servlet:

 

código do link da JSP:

 

<form action="ControleVeiculo" method="post"> 

 <a href="http://localhost:8080/Carros/ControleVeiculo?acao=consultarTodos"><font size="3" color="white"><b>LISTAR VEÌCULOS</b></font></a>

 

Quando eu colocava somente ControleVeiculo?acao=consultarTodos, ele dava erro 404.

 

Código Servlet:

 

package Servlet;

import Geral.Veiculo;
import DAO.VeiculoDAO;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name="ControleVeiculo", urlPatterns={"/ControleVeiculo"})
public class ControleVeiculo extends HttpServlet {

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

       String acao = request.getParameter("acao");
   if("salvar".equals(acao)) {
     salvar(request, response);
   } else if ("consultar".equals(acao)) {
     consultar(request, response);
   } else if ("remover".equals(acao)) {
     remover(request, response);
   } else if ("consultarTodos".equals(acao)) {
       consultarTodos(request, response);
   } else if ("alterar".equals(acao)) {
       alterar(request, response);
   }
       else if ("efetuarAlterar".equals(acao)) {
       efetuarAlterar(request, response);
   }
       /**/
   }
private void consultarTodos(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
     response.setContentType("text/html;charset=UTF-8");
      PrintWriter out = response.getWriter();

      try {

          VeiculoDAO vdao = new VeiculoDAO();
          List<Veiculo> carros = vdao.consultarTodos();

          out.println("<html>");
          out.println(" <head>");
          out.println(" <title>LF Veículos - Listagem de Veículos</title>");
          out.println(" </head>");
          out.println(" <body>");
          out.println(" <form action='ControleVeiculo' method='post'");
          out.println(" <table width=\"80%\" border=\"1\" bgcolor=\"green\" align=\"center\">");
          out.println(" <tr>");
          out.println(" <td align=\"center\"><font size=\"10\" color=\"white\">LF Veículos</font></td>");
          out.println(" </tr>");
          out.println(" <tr>");
          out.println(" <td align=\"center\" bgcolor=\"black\"><font size=\"4\" color=\"white\"> Veículos Cadastrados </font></td>");
          out.println(" </tr>");
          out.println(" </table>");
          out.println(" <table width='100%' border='1'");
          out.println(" <tr>");
          out.println(" <th>ID</th>");
          out.println(" <th>Modelo</th>");
          out.println(" <th>Placa</th>");
          out.println(" <th>Kilometragem/KMs</th>");
          out.println(" <th>Montadora</th>");
          out.println(" <th>Ano</th>");
          out.println(" <th colspan='3'>Opções</th>");
          out.println(" </tr>");
          for(Veiculo v : carros){
              out.println(" <tr onMouseover=\"this.bgColor='#EEEEEE'\"onMouseout=\"this.bgColor='#FFFFFF'\">");
              out.println(" <td align='center'>" + v.getId() + "</td>");
              out.println(" <td align='center'>" + v.getModelo() + "</td>");
              out.println(" <td align='center'>" + v.getPlaca() + "</td>");
              out.println(" <td align='center'>" + v.getKms() + "</td>");
              out.println(" <td align='center'>" + v.getMontadora() + "</td>");
              out.println(" <td align='center'>" + v.getAno() + "</td>");
              out.println(" <td align='center'>" + v.getPreco()+ "</td>");
              out.println(" <td align=\"center\"><input type='submit' name='alterar' value='Alterar' onclick=\"this.form.action='ControleVeiculo?acao=alterar&id="+ v.getId() +"'\"></td>");
              out.println(" <td align=\"center\"><input type='submit' name='remover' value='Remover' onclick=\"this.form.action='ControleVeiculo?acao=remover&id="+ v.getId() +"'\"></td>");
              out.println(" </tr>");
          }
          out.println(" <table border='0'>");
          out.println(" <tr>");
          out.println(" <td align='right'>");
          out.println(" <a href='Menu.jsp'>Menu Principal</a>");
          out.println(" </td>");
          out.println(" <td align='left'>");
          out.println(" <a href='CadastroVeiculo.jsp'>Cadastro de Veículo</a>");
          out.println(" </td>");
          out.println(" </tr>");
          out.println(" </table>");
          out.println(" </form>");
          out.println(" </body>");
          out.println(" </html>");
       }
      catch(Exception ex){
          ex.printStackTrace();
      }
      finally {
           out.close();
       }
   }

   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   } 

   @Override
   protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
       processRequest(request, response);
   }

   @Override
   public String getServletInfo() {
       return "Short description";
   }

}

 

Alguém saberia me dizer porque está dando tela branca,

 

Eu tentei debugar colocando o primeiro breakpoint no método processRequest,

 

mas ele nem chega lá e já da tela branca.

 

Fico no aguardo,

 

Obrigado,

 

Lucas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Kinhas.

 

Quando você trabalha com Servlets, você não precisa digitar o enderêço da URL toda, isto porque a ServletContext já configura automaticamente este contexto, anexando ao nome da Servlet, bastando tão somente digitar o nome da Servlet junto com a ação, assim:

 

     <a href="ControleVeiculo?acao=consultarTodos"><font size="3" color="white"><b>Listar Veiculos</b></font></a>

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Discorpio grato por responder,

 

porém já fiz isso e dá um erro 404 lá do GlassFish,

 

L Vasconcellos, como assim coloca no doGET?

 

Eu tenho vários botões que chamam por no formulário pelo method post, terei de trocar por get?

 

Poderia ser um pouco mais claro, sou muito novo no Java.

 

Obrigado.

 

EDIT,

 

Caramba,

 

agora no do get funcionou o HREF, porém ainda não testei o resto,

 

Você saberia me falar o porque antes não estava funcionando Luis?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.