Não retorna dados ao jsp

5 respostas
Marcelo_Freitas1

Bom dia pessoal não estou conseguindo retornar os dados do cliente cadastrado no sistema.
A servlet esta se comunicando com a Dao e vice versa mas na hora de retornar os dados para o jsp nada acontece. Estou travado nisso a um bom tempo, quem puder ajudar agradeço. Preciso que na servlet 2 pegue o email informado na servlet 1, para assim os dados serem buscado e trazido na tela de dados do cliente, atualmente na servlet 1 esta adicionando o email na sessão mas não estou conseguindo buscar esse email da segunda servlet
Segue o código:

Servlet 1

try {
	BeanCursoJsp beanCursoJsp = new BeanCursoJsp();
	BeanInvestimento beanInvestimento = new BeanInvestimento();
	BeanIndicado beanIndicado = new BeanIndicado();
	BeanEndereco beanEndereco = new BeanEndereco();
	BeanCadastroBanco beanCadastroBanco = new BeanCadastroBanco();

	String email = request.getParameter("email");
	String senha = request.getParameter("senha");

	if (daoLogin.validarLogin(email, senha)) {// acesso ok
		DaoLogin daoLogin = new DaoLogin();
		DaoUsuario daoUsuario = new DaoUsuario();

		List listaUsuario = daoUsuario.listar(email);
		request.setAttribute("investimento", beanInvestimento);
		request.setAttribute("indicado", beanIndicado);
		request.setAttribute("endereco", beanEndereco);
		request.setAttribute("usuario", listaUsuario);

		// ADICIONAR O USUARIO NA SESSÃO
		HttpServletRequest req = (HttpServletRequest) request;
		HttpSession session = req.getSession();
		session.setAttribute(email, email);
		
		//session.getAttribute(email);
		
		System.out.println(email);
		System.out.println(session.getAttribute(email));
		
		RequestDispatcher dispatcher = request.getRequestDispatcher("/Dashoboard.jsp");
		dispatcher.forward(request, response);

Servlet 2

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

	try {
		String acao = request.getParameter("acao"); 
		String user = request.getParameter("user"); 

		....else if (acao.equalsIgnoreCase("listartodos")) { /* comunicação feita*/
			BeanCursoJsp beanCursoJsp = new BeanCursoJsp();
			
			/*precisa pegar os valores da seção de acordo com o email para trazer os dados a tela do cliente.*/
			//	String email = (String) request.getSession().getAttribute("email");
			String email = "[email removido]";
	
			//	List listaUsuario2 = daoUsuario.listar(email);
			RequestDispatcher view = request.getRequestDispatcher("/dadoscliente.jsp");
			// request.setAttribute("usuario", listaUsuario);
			request.setAttribute("usuario", daoUsuario.listar(email));  //atributo email será o email trazido da session

			view.forward(request, response);
		}

hoje eu faço o teste de modo estático, colocando o meu próprio email para trazer os dados cadastrado e quando vou acessar o meus dados na tela de dashboard ele aparece o seguinte erro …

HTTP Status 405 - HTTP method POST is not supported by this URL
type Status report

message HTTP method POST is not supported by this URL

description The specified HTTP method is not allowed for the requested resource.

Apache Tomcat/7.0.82

Realmente eu preciso de ajuda galera :frowning:

5 Respostas

Lucas_Camara

Altere seu post e coloque o código feito e não a imagem. Isso facilita na ajuda.

Marcelo_Freitas1

Post alterado

Lucas_Camara

Pelo erro, vc está realizando um POST num servlet que soh aceita GET. Veja essa mensagem:

message HTTP method POST is not supported by this URL

A mensagem diz que o método POST não é suportada pela url. Tente mudar o seu servlet para ficar assim:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

Mas de qualquer forma, manda o código da Servlet 2 completo pra gente ver.

Marcelo_Freitas1

Esse erro da servlet foi corrigido, agora o que falta ser corrigido é trazer o valor de email para a servlet 2 assim eu consigo buscar todos os dados para trazer na tela de dados do cliente.
Servlet2

package servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpSession;
import javax.websocket.Session;

import org.json.HTTP;

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;

import beans.BeanCursoJsp;
import beans.BeanEndereco;
import dao.DaoLogin;
import dao.DaoRecuperarSenha;
import dao.DaoUsuario;
import servlet.LoginServlet;

@WebServlet("/salvarUsuario")
public class Usuario extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private DaoUsuario daoUsuario = new DaoUsuario();
	private DaoLogin daoLogin = new DaoLogin();

	public Usuario() {
		super();
	}



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

		
		try {
			String acao = request.getParameter("acao"); 
			String user = request.getParameter("user"); 

			String email = request.getParameter("email");
		
		

			if (acao.equalsIgnoreCase("delete")) {
				daoUsuario.delete(user);
				RequestDispatcher view = request.getRequestDispatcher("/cadastroUsuario.jsp");
				request.setAttribute("usuario", daoUsuario.listar(user));
				view.forward(request, response);
			} else if (acao.equalsIgnoreCase("saque")) {

				// request.setAttribute("usuario", listaUsuario);

				RequestDispatcher view = request.getRequestDispatcher("/dadoscliente.jsp");
				request.setAttribute("usuario", daoUsuario.consultar("email"));
				view.forward(request, response);

				} else if (acao.equalsIgnoreCase("listartodos")) { /* comunicação feita*/
	
						BeanCursoJsp beanCursoJsp  = new BeanCursoJsp();
					HttpServletRequest req = (HttpServletRequest) request;
					HttpSession session = req.getSession();
					//beanCursoJsp.getEmail()
				
					//session.setAttribute("usuario", beanCursoJsp);
					System.out.println(email);
					request.getParameter(user);
					request.setAttribute("usuario", daoUsuario.consultar(email));

					RequestDispatcher view = request.getRequestDispatcher("/dadoscliente.jsp");
					view.forward(request, response);
					
				}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response, String user)
			throws ServletException, IOException {

		String acao = request.getParameter("acao");

		if (acao != null && acao.equalsIgnoreCase("reset")) {
			try {

				RequestDispatcher view = request.getRequestDispatcher("/cadastroUsuario.jsp");

				request.setAttribute("usuarios", daoUsuario.listar(user));
				view.forward(request, response);

			} catch (Exception e) {
				e.printStackTrace();
			}
		} else {
			/*
			 * dados que vem da tela e se cria a variavel local para ser passado por
			 * parametro
			 */

			String id = request.getParameter("id");

			String login = request.getParameter("login");
			String senha = request.getParameter("senha");
			String nome = request.getParameter("nome");
			String sobrenome = request.getParameter("sobrenome");
			String email = request.getParameter("email");
			String rg = request.getParameter("rg");
			String cpf = request.getParameter("cpf");
			String celular = request.getParameter("celular");
			String telefone = request.getParameter("telefone");

			/*
			 * String cep = request.getParameter("cep"); String cidade=
			 * request.getParameter("cidade"); String estado =
			 * request.getParameter("estado"); String numeroCasa =
			 * request.getParameter("numeroCasa"); String pais
			 * =request.getParameter("pais"); String rua = request.getParameter("rua");
			 */

			BeanCursoJsp usuario = new BeanCursoJsp();
			usuario.setId(!email.isEmpty() ? Long.parseLong(email) : null);
			usuario.setLogin(login);
			usuario.setSenha(senha);
			usuario.setNome(nome);
			usuario.setSobrenome(sobrenome);
			usuario.setEmail(email);
			usuario.setRg(rg);
			usuario.setCpf(cpf);
			usuario.setCelular(celular);
			usuario.setTelefone(telefone);

			/*
			 * BeanEndereco beanEndereco = new BeanEndereco(); beanEndereco.setCep(cep);
			 * beanEndereco.setCidade(cidade); beanEndereco.setEstado(estado); //
			 * beanEndereco.setNumeroCasa(Integer.valueOf(numeroCasa));
			 * beanEndereco.setPais(pais); beanEndereco.setRua(rua);
			 */
				
			
			/*Código para tela de cadastro */
			try {

				String msg = null;
				boolean podeInserir = true;

				/*
				 * Campo de de verificação, caso o campo este vasio ou nulo a mensagem será
				 * retornará
				 */

				if (login == null || login.isEmpty()) {
					msg = ("Informe o login");
					podeInserir = false;

				}

				else if (senha == null || senha.isEmpty()) {
					msg = ("Senha não informada");
					podeInserir = false;

				} else if (nome == null || nome.isEmpty()) {

					msg = ("Nome não informado");
					podeInserir = false;

				} else if (sobrenome == null || nome.isEmpty()) {

					msg = ("Sobre nome não informado ");
					podeInserir = false;

				}

				else if (rg == null || rg.isEmpty()) {
					msg = ("Rg não informado");
					podeInserir = false;

				} else if (cpf == null || cpf.isEmpty()) {
					msg = ("Cpf não informado");
					podeInserir = false;

				} else if (telefone == null || telefone.isEmpty()) {
					msg = ("Telefone não informado");
					podeInserir = false;

				} else if (celular == null || celular.isEmpty()) {
					msg = ("Celular não informado");
					podeInserir = false;

				}

				if (msg != null) {
					request.setAttribute("msg", msg);
				}

				if (email == null || email.isEmpty() && !daoUsuario.validarEmail(email)) {
					request.setAttribute("msg", "Usuário já existe ou não informado!");
				}

				if (id == null || id.isEmpty() && daoUsuario.validarEmail(email)) {

				} else if (id != null && !id.isEmpty()) {
					daoUsuario.atualizar(usuario);
				}

				if (!podeInserir) {

					/*
					 * Manter as informações no cadastro após aparecer a mensagem de erro
					 */
					request.setAttribute("user", usuario);

				}

				RequestDispatcher view = request.getRequestDispatcher("/cadastroUsuario.jsp");
				request.setAttribute("usuario", daoUsuario.listar(email));
				view.forward(request, response);

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

	}

}
Marcelo_Freitas1

Erros corrigidos, mas agora só falta a servlet trazer para a página certa, em vez de ela leva o cliente logado para a página de dadoscliente, esta levando para página de cadastro de cliente.

Depurando o código esta sendo lido e trazendo os dados, só não esta sendo direcionado para a pag correta como programado.

Preciso de help nisso agora, vlw galera.

O código da servlet esta assim…


else if (acao.equalsIgnoreCase("listartodos")) { /* comunicação feita */

				// BeanCursoJsp beanCursoJsp = new BeanCursoJsp();
				HttpServletRequest req = (HttpServletRequest) request;
				HttpSession session = req.getSession();

				BeanCursoJsp beanCursoJsp2 = (BeanCursoJsp) session.getAttribute("usuario");
				session.setAttribute("usuario", beanCursoJsp2);

				String emaile = beanCursoJsp2.getEmail();

				System.out.println("Email vindo pela session: " + beanCursoJsp2.getEmail());  /*Recebendo com sucesso*/

				RequestDispatcher view = request.getRequestDispatcher("dadoscliente.jsp");  /*código não esta redirecionando para essa página */
				request.setAttribute("usuarios", daoUsuario.consultar(emaile));
				view.forward(request, response);

			}
Criado 11 de junho de 2020
Ultima resposta 17 de jun. de 2020
Respostas 5
Participantes 2