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

Dúvida no Ex. 1 da Aula 5 - Mantendo informações relativas ao usuário com cookies

O servidor me retorna status 404, porem minha classe login esta correta. E em cima da classe eu estou dizendo que a urlPatterns = "/login". Alguem me ajuda por favor

12 respostas

Você está tentando acessar a página login diretamente? Ela deve ser acessada através de um POST da página gerenciador.

Sim. Estou tentando acessar de um Post do gerenciador.

Como é o conteúdo do seu web.xml e do index.html?

index.html

Bem vindo ao nosso gerenciador de empresas!

Nome:

Email: Senha:

<!--
<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="text" name="email" />
Senha: <input type="password" name="senha" />
<input type="submit" value="Login" />
</form>

</body>
</html>
-->

Qual a parte te interessa do web.xml? Pois é muito grande.

Acho que não precisa do web.xml. Como é a classe Login.java?

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.Cookie; 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 {

@Override 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) { Cookie cookie = new Cookie("usuario.logado", email); resp.addCookie(cookie); writer.println("

Usuario logado: " + email + ""); } else { writer.println("Usuario inválida"); } } }

Você já implementou o filtro? Se sim o que tem no método doFilter?

package br.com.alura.gerenciador.web;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

@WebFilter(urlPatterns = "/*")
public class FiltroDeAuditoria implements Filter{

    @Override
    public void destroy() {    
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request; 
        String uri = req.getRequestURI();
        System.out.println("usuário acessando a URI " + uri);
        chain.doFilter(req, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {    
    }

}
solução!

Boa Tarde Gabriel,

eu sempre trabalhei com desenvolvimento desktop, então estou tendo ainda algumas dificuldades para trabalhar com servidor.

Estava acontecendo comigo uma situação que talvez possa te ajudar.

No caso estava realizando alterações nas servlets e não estavam impactando ao executar pelo navegador.

Então tive que utilizar as opções Build Project e Clean antes de reiniciar o servidor TomCat.

Neste caso estou garantindo a publicação com os .class compilados de acordo com minha última alteração.

Fiz as alterações, e resolveu muito obrigado a quem me deu ajuda.