Fórum Servlet e jsp #484866

08/07/2014

0

Bom dia !

estou com dificuldades em achar um erro no código , no qual acompanho a aula 26 de jsp e servlets
quando eu apertasse no botão enviar com o formulário em branco era para a condição funcionar
informando que os campos são obrigatórios .


package br.higor.AloMundoservlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.ProcessBuilder.Redirect;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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;

/**
 * Servlet implementation class WizardSerlvet
 */
@WebServlet("/WizardSerlvet")
public class WizardSerlvet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     
    public WizardSerlvet() {
        super();
        // TODO Auto-generated constructor stub
    */
    
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyy HH:mm");
		request.setAttribute("data", dateFormat.format( new Date()));
		
		String redirect = "jsp/serlvet-exemplo.jsp";
		if(validarCamposObg(request, response)){
			redirect = "jsp/serlvet-resultado.jsp";
		}			

			RequestDispatcher dispatcher =  request.getRequestDispatcher(redirect);
			dispatcher.forward(request, response);
			
		}
		
		
		//RequestDispatcher dispatcher =  request.getRequestDispatcher(redirect);
		//dispatcher.forward(request, response);
		
	
    
	
	private boolean validarCamposObg(HttpServletRequest resqueste , HttpServletResponse response) {
		boolean retorno = true;
		String msgErro = null;
		String nome = resqueste.getParameter("nome");
		String sobrenome = resqueste.getParameter("sobrenome");
		String endereco = resqueste.getParameter("endereco");
		String cpf = resqueste.getParameter("cpf");
		String dataNasc = resqueste.getParameter("dataNasc");
		String telefone = resqueste.getParameter("telefone");
		
		if (nome == null){
			retorno = false;
			msgErro = "Campo Obrigatorio !";
		}else if (sobrenome == null){
			retorno = false;
			msgErro = "Campo Obrigatorio !";
		}else if (endereco == null){
			retorno = false;
			msgErro = "Campo Obrigatorio !";
		}else if (cpf == null){
			retorno = false ;
			msgErro = "Campo Obrigatorio !";
		}else if (dataNasc == null){
			retorno = false;
			msgErro = "Campo Obrigatorio !";
		}else if (telefone == null){
			retorno = false;
			msgErro = "Campo Obrigatorio !";
		}
		resqueste.setAttribute("msgErro", msgErro);
		return retorno;
		
	}
	
		
	}




e como se não passasse dentro da condição vazio ai vai para uma pagina em branco formulario vasil
Higor Monteiro

Higor Monteiro

Responder

Posts

25/07/2014

Thiago Palmeira

Tentou debugar para ver o comportamento que o sistema está tendo?

Senão tenta imprimir as variáveis para ver o que está entrando antes da condição.
Responder

Gostei + 0

05/08/2014

Higor Monteiro

infelizmente ainda tenho problemas com debugação
Responder

Gostei + 0

06/08/2014

Thiago Palmeira

Olha esse trecho do código
resqueste.setAttribute("msgErro", msgErro);
não seria
resquest.setAttribute("msgErro", msgErro);
não existe a palavra "resqueste" e sim "request".
Responder

Gostei + 0

07/08/2014

Higor Monteiro

muito obrigado pela ajuda mas o problema ainda persisti
acredito que o erro esteja no direccionamento quando compilo o formulário
a URL : http://localhost:8089/AloMundoServlets/jsp/serlvet-exemplo.jsp e quando
não preencho os campos obrigatórios URL http://localhost:8089/AloMundoServlets/WizardSerlvet
ai vou reencher novamente ou salvo os restante dos campos e que me aparece ERRO 404
Responder

Gostei + 0

08/08/2014

Thiago Palmeira

Posta o código do teu formulário, esse erro é porque o caminho do Servlet está incorreto...
Responder

Gostei + 0

08/08/2014

Higor Monteiro

formulario principal .

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	
		<form action="../WizardSerlvet" method="post" >
		${msgErro != null ? msgErro : ''}
			<table width="400" cellpadding="10" align="center">
				<tr>
				<td>Nome :</td>
				<td><input type="text" name="nome"></td>
				</tr>	
				
				<tr>
				<td>Sobrenome :</td>
				<td><input type="text" name="sobrenome"></td>
				</tr>
				
				<tr>
				<td>Endereço :</td>
				<td><input type="text" name="endereco"></td>
				</tr>
			
				<tr>
				<td>CPF/CNPJ:</td>
				<td><input type="text" name="cpf"></td>
				</tr>
				<tr>
				<td>DATA NASC : </td>
				<td><input type="text" name="dataNasc"></td>
				</tr>
				<tr>
				<td>Telefone :</td>
				<td><input type="text" name="telefone"></td>
				</tr>

					
		
			<table  cellpadding="10" align="center">
				
				<td><input type="submit" value="enviar"></td>
			
				<td><input type="reset" value="limpar"></td>
		</table>
				</tr>
		</table>
		</form>


formulario de resultado

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> RESULTADO </title>
</head>
<body>

<form action="../WizardSerlvet" >

<table width="400" cellpadding="10" align="center">
<tr>
<td>Nome :</td>
<td><input type="text" name="nome" disabled="disabled" value="${param.nome}"></td>
</tr>

<tr>
<td>Sobrenome :</td>
<td><input type="text" name="sobrenome" disabled="disabled" value="${param.sobrenome}"></td>
</tr>

<tr>
<td>Endereço :</td>
<td><input type="text" name="endereco" disabled="disabled" value="${param.endereco}"></td>
</tr>

<tr>
<td>CPF/CNPJ:</td>
<td><input type="text" name="cpf" disabled="disabled" value="${param.cpf}"></td>
</tr>
<tr>
<td>DATA NASC : </td>
<td><input type="text" name="dataNasc" disabled="disabled" value="${param.dataNasc}"></td>
</tr>
<tr>
<td>Telefone :</td>
<td><input type="text" name="telefone" disabled="disabled" value="${param.telefone}"></td>
</tr>

Ultima atualização em $

</table>
</form>


</body>
</html>
Responder

Gostei + 0

08/08/2014

Janaina Mendes

pessoal, me desculpem por me meter no onde não não sei quase nada, é pq estou acompanhando video aula sobre o servlet e não assimilei o assunto, queria algo mais claro, quando e onde devemos utilizar, obrigada.
Responder

Gostei + 0

09/08/2014

Thiago Palmeira

formulario principal .

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	
		<form action="../WizardSerlvet" method="post" >
		${msgErro != null ? msgErro : ''}
			<table width="400" cellpadding="10" align="center">
				<tr>
				<td>Nome :</td>
				<td><input type="text" name="nome"></td>
				</tr>	
				
				<tr>
				<td>Sobrenome :</td>
				<td><input type="text" name="sobrenome"></td>
				</tr>
				
				<tr>
				<td>Endereço :</td>
				<td><input type="text" name="endereco"></td>
				</tr>
			
				<tr>
				<td>CPF/CNPJ:</td>
				<td><input type="text" name="cpf"></td>
				</tr>
				<tr>
				<td>DATA NASC : </td>
				<td><input type="text" name="dataNasc"></td>
				</tr>
				<tr>
				<td>Telefone :</td>
				<td><input type="text" name="telefone"></td>
				</tr>

					
		
			<table  cellpadding="10" align="center">
				
				<td><input type="submit" value="enviar"></td>
			
				<td><input type="reset" value="limpar"></td>
		</table>
				</tr>
		</table>
		</form>


formulario de resultado

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> RESULTADO </title>
</head>
<body>

<form action="../WizardSerlvet" >

<table width="400" cellpadding="10" align="center">
<tr>
<td>Nome :</td>
<td><input type="text" name="nome" disabled="disabled" value="${param.nome}"></td>
</tr>

<tr>
<td>Sobrenome :</td>
<td><input type="text" name="sobrenome" disabled="disabled" value="${param.sobrenome}"></td>
</tr>

<tr>
<td>Endereço :</td>
<td><input type="text" name="endereco" disabled="disabled" value="${param.endereco}"></td>
</tr>

<tr>
<td>CPF/CNPJ:</td>
<td><input type="text" name="cpf" disabled="disabled" value="${param.cpf}"></td>
</tr>
<tr>
<td>DATA NASC : </td>
<td><input type="text" name="dataNasc" disabled="disabled" value="${param.dataNasc}"></td>
</tr>
<tr>
<td>Telefone :</td>
<td><input type="text" name="telefone" disabled="disabled" value="${param.telefone}"></td>
</tr>

Ultima atualização em $

</table>
</form>


</body>
</html>


Higor, está redirecionando para o formulário de resultado?

Caso não estiver, no teu trecho
../WizardSerlvet
os dois pontos e barra corresponde se essa página jsp está dentro de uma pasta, ou seja, é utilizado quando o arquivo do formulário não está na raiz do projeto, dentro da pasta "WebContent"...

Tenta fazer o seguinte teste, remova os dois pontos e barra deixando assim:
WizardSerlvet
Responder

Gostei + 0

10/08/2014

Higor Monteiro

Boa Noite Varallo !

muito obrigado por esta me ajudando , quando faltar algum campo no preenchimento do formulário ira apresenta quais os campos faltam , ai então preencheríamos
o restante após todos preenchidos iria para pagina resultado .
Responder

Gostei + 0

14/08/2014

Higor Monteiro

meu codigo formulario : serlvet-exemplo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	
		<form action="../WizardSerlvet" method="post" >
		${msgErro != null ? msgErro : ''}
			<table width="400" cellpadding="10" align="center">
				<tr>
				<td>Nome :</td>
				<td><input type="text" name="nome"></td>
				</tr>	
				
				<tr>
				<td>Sobrenome :</td>
				<td><input type="text" name="sobrenome"></td>
				</tr>
				
				<tr>
				<td>Endereço :</td>
				<td><input type="text" name="endereco"></td>
				</tr>
			
				<tr>
				<td>CPF/CNPJ:</td>
				<td><input type="text" name="cpf"></td>
				</tr>
				<tr>
				<td>DATA NASC : </td>
				<td><input type="text" name="dataNasc"></td>
				</tr>
				<tr>
				<td>Telefone :</td>
				<td><input type="text" name="telefone"></td>
				</tr>

					
		
			<table  cellpadding="10" align="center">
				
				<td><input type="submit" value="enviar"></td>
			
				<td><input type="reset" value="limpar"></td>
		</table>
				</tr>
		</table>
		</form>

	
</body>
</html>


agora a pagina que deveria aparece caso passe pela condição; que obriga que os campos estejam preenchidos

formulário : serlvet-resultado.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> RESULTADO </title>
</head>
<body>

	<form action="../WizardSerlvet" method="post" >

			<table width="400" cellpadding="10" align="center">
				<tr>
				<td>Nome :</td>
				<td><input type="text" name="nome" disabled="disabled" value="${param.nome}"></td>
				</tr>	
				
				<tr>
				<td>Sobrenome :</td>
				<td><input type="text" name="sobrenome" disabled="disabled" value="${param.sobrenome}"></td>
				</tr>
				
				<tr>
				<td>Endereço :</td>
				<td><input type="text" name="endereco" disabled="disabled" value="${param.endereco}"></td>
				</tr>
			
				<tr>
				<td>CPF/CNPJ:</td>
				<td><input type="text" name="cpf" disabled="disabled" value="${param.cpf}"></td>
				</tr>
				<tr>
				<td>DATA NASC : </td>
				<td><input type="text" name="dataNasc" disabled="disabled" value="${param.dataNasc}"></td>
				</tr>
				<tr>
				<td>Telefone :</td>
				<td><input type="text" name="telefone" disabled="disabled" value="${param.telefone}"></td>
				</tr>

					Ultima atualização em $
		
		</table>
		</form>

	
</body>
</html>


por ultimo minha serlvet

package br.higor.AloMundoservlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.ProcessBuilder.Redirect;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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;

/**
 * Servlet implementation class WizardSerlvet
 */
@WebServlet("/WizardSerlvet")
public class WizardSerlvet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      
    
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyy HH:mm");
		request.setAttribute("data", dateFormat.format( new Date()));
		
		String redirect = "jsp/serlvet-resultado.jsp";
		if(validarCamposObg(request, response)){
			redirect = "jsp/serlvet-exemplo.jsp";
		}			

			RequestDispatcher dispatcher =  request.getRequestDispatcher(redirect);
			dispatcher.forward(request, response);
			
		}
		
	private boolean validarCamposObg(HttpServletRequest resquest , HttpServletResponse response) {
		boolean retorno = true;
		String msgErro = "";
		String nome = resquest.getParameter("nome");
		String sobrenome = resquest.getParameter("sobrenome");
		String endereco = resquest.getParameter("endereco");
		String cpf = resquest.getParameter("cpf");
		String dataNasc = resquest.getParameter("dataNasc");
		String telefone = resquest.getParameter("telefone");
		
		if (nome == null ||  "" .equals(nome)){
			retorno = false;
			msgErro +="Campo Nome Obrigatorio !<br/>";
		}if (sobrenome == null ||  "" .equals(sobrenome)){
			retorno = false;
			msgErro += "Campo Sobrenome Obrigatorio !<br/>";
		}if (endereco == null ||  "" .equals(endereco)){
			retorno = false;
			msgErro += "Campo endereço Obrigatorio !<br/>";
		}if (cpf == null ||  "" .equals(cpf) ){
			retorno = false ;
			msgErro += "Campo CPF Obrigatorio !<br/>";
		}if (dataNasc == null ||  "" .equals(dataNasc)){
			retorno = false;
			msgErro += "Campo Data Nascimento  Obrigatorio !<br/>";
		}if (telefone == null ||  "" .equals(telefone)){
			retorno = false;
			msgErro += "Campo Telefone Obrigatorio !<br/>";
		}
		resquest.setAttribute("msgErro", msgErro);
		return retorno;
		
	}
	
		
	}





Responder

Gostei + 0

14/08/2014

Thiago Palmeira

Opa, cara se não importar, pode enviar esse projeto para tentar reproduzir aqui?
Responder

Gostei + 0

14/08/2014

Higor Monteiro

sim meu, eu ficaria muito grato me mande seu email por favor , muito obrigado por esta me ajudando .
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar