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

Estou com dúvida no curso de Servlet 3 e Fundamentos Web, no exercício do capítulo Mantendo informações relativas ao usuário com cookies.

Apenas avisar que há um erro no enunciado.

Em "Criaremos a servlet e funcionalidade de login. Para isso crie primeiro uma servlet chamada Login e implemente o método doGet." deveria ser doPost ao invés de doGet.

14 respostas

Obrigado Gabriel!

Olá,

Estou recebendo o seguinte erro:

HTTP Status 404 - /gerenciador/login

type Status report

message /gerenciador/login

description The requested resource is not available.

Apache Tomcat/8.0.30

Segue o código das minhas classes

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;

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.Usuario;
import br.com.alura.gerenciador.dao.UsuarioDAO;

@WebServlet(urlPatterns = "/login")

public class Login extends HttpServlet{

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String email = req.getParameter("email");
        String senha = req.getParameter("senha");
        Usuario usuario = new UsuarioDAO().buscaPorEmailESenha(email, senha);
        PrintWriter writer = resp.getWriter();
        if (usuario==null){
            writer.println("<html><body>Usuário Inválido</html></body>");
        }else{
            writer.println("<html><body>Usuário Logado: " + email +" </html></body>");

        }

    }
}




Bem vindo ao nosso gerenciador de empresas!<br/>
form action="novaEmpresa" method="POST"
    Nome: input type="text" name="nome"
    input type="submit" value="Enviar"


form action="login" method="POST"
    Email: input type= "email" name="email"
    Senha: input type="password" name="senha"
    input type="submit" value="Enviar"

Olá Raquel, tudo bem?

Editei a sua pergunta para formatar o seu código Java, tudo bem? Assim fica mais fácil a leitura.

Sobre o problema, você consegue acessar qualquer outra url da sua aplicação de teste? O seu form está correto e o urlPatterns também.

Outro detalhe: A sua aplicação está com o contexto gerenciador mesmo? Dependendo da sua configuração a url seria:

http://localhost:8080/gerenciador/login

ou

http://localhost:8080/login

Abs!

Ei Alexandre, tudo bem e vc?

Ah sim... nem sabia que dava para formatar... Obrigada!

Sim, eu consigo acessar as urls, esse erro acontece depois que eu clico no botão Enviar.

Acesso usando essa url

http://localhost:8080/gerenciador/index.html

Olá Raquel!

Hmm, neste caso o seu contexto está configurado para acessar gerenciador. Você já tem alguma outra classe configurada com @WebServlet?

Olá Alexandre,

Sim, tenho as classes dos exercicios anteriores: BuscaEmpresa e NovaEmpresa

Raquel ,

em cima do método doPost , coloque a anotação @Override

assim está demonstrando que aquele métodos está sobre escrevendo o método doPost da classe HttpServlet .

do jeito que está acredito que ele esteja buscando o doPost da classe HttpServlet .

faça o teste , qualquer coisa coloque novamente o erro aqui .

Olá Celso, No meu código já está com o @Override em cima do doPost. Acho que na hora de colar saiu sem.

Abraços

Raquel,

como que está seu arquivo index ?

<html>
<body>
Bem vindo ao nosso gerenciador de empresas!<br/>
<form action="novaEmpresa" method="POST">

    Nome: <input type="text" name="nome">
    <input type="submit" value="Enviar">
</form>

<form action="login" method="POST">

    Email: <input type= "email" name="email"/>
    Senha: <input type="password" name="senha"/>
    <input type="submit" value="Enviar"/>
</form>
</body>
</html>

Olá Celso, Não sabia direito como formatar para aparecer o código... tem umas aspas a mais aí... Abraços

ué, sumiram algumas partes do código...

<'html>
<'body>
Bem vindo ao nosso gerenciador de empresas!<br/>
<'form action="novaEmpresa" method="POST">

    Nome: <'input type="text" name="nome">
    <'input type="submit" value="Enviar">
<'/form>

<'form action="login" method="POST">

    Email: <'input type= "email" name="email"/>

    Senha: <'input type="password" name="senha"/>
    <'input type="submit" value="Enviar"/>
<'/form>
<'/body>
<'/html>
solução!

Raquel ,

Achei seu erro

na classe Login , no if está do seguinte jeito :

if (usuario==null){
            writer.println("<html><body>Usuário Inválido</html></body>");
        }else{
            writer.println("<html><body>Usuário Logado: " + email +" </html></body>");

        }

repare que você está fechando o html antes de fechar o body , altere isso e verifica se vai funcionar .

no caso terá que ser assim

if (usuario==null){
            writer.println("<html><body>Usuário Inválido</body></html>");
        }else{
            writer.println("<html><body>Usuário Logado: " + email +" </body></html>");

        }

Espero ter ajudado .

Ei Celso!

Funcionou! Era isso mesmo!!! Obrigada!

Abraços!

Pessoal boa tarde todos os meu "imports" não estao sendo reconhecidos pelo eclipse , mesmo eu reescrevendo-os um a um usando ctrl 1 nada ta funcionando = ( alguem tem alguma dica ? Att.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software