Servlets nao envia mensagem para pagina jsp

BOA NOITE, QUANDO GRAVO UM NOVO USUARIO O SERVLET NAO ENVIA A MENSAGEM DE DADOS GRAVADOS

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<link rel="stylesheet"
href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript"
src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script type="text/javascript"
src="https://code.jquery.com/ui/1.12.0/jqueryui.js"></script>


<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastrar Usuario</title>


</head>
<body>
	<center>
		<h1>Cadastrar Usuario</h1>
	</center>
	<div id="create">
		<form id="form1" action="Controle?cmd=create" method="post">
			Nome<br /> <input type="text" name="nome" placeholder="Digite seu Nome" value="" size="50" id="nome" /><br />
			
			Email<br/> <input type="email" name="email" placeholder="Digite o Email" value="" size="50" id="email" /> <br /> 
			<input type="submit" value="Enviar" />

		</form>

	</div>
	
</body>
</html>









package control;

import java.io.IOException;

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 entity.Usuario;
import persistence.UsuarioDao;

/**
 * Servlet implementation class Controle
 */
@WebServlet("/Controle")
public class Controle extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public Controle() {
		super();

	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String cmd = request.getParameter("cmd");
		if(cmd.equalsIgnoreCase("excluir")){
			excluir(request,response);
		}
		if(cmd.equalsIgnoreCase("consultar")){
			consultar(request,response);
		}
		
	}

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

		String cmd = request.getParameter("cmd");
		if (cmd.equalsIgnoreCase("create")) {
			create(request, response);
		}
		if(cmd.equalsIgnoreCase("alterar")){
			alterar(request,response);
		}

	}

	protected void create(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String msg="";

		try {

			String nome = request.getParameter("nome");
			String email = request.getParameter("email");
			Usuario u = new Usuario(null, nome, email);
			new UsuarioDao().create(u);
			msg="Dados Gravados com Sucesso...";
			request.setAttribute("Mensagem: ", msg);

		} catch (Exception ex) {
			msg="ERROR: " + ex.getMessage();
			ex.printStackTrace();
			

		}finally {
			
			request.getRequestDispatcher("Sistema.jsp").forward(request, response);
			
		}
	}
	protected void consultar(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			try{
				request.setAttribute("lst", new UsuarioDao().listar());
				
			}catch(Exception ex){
				ex.printStackTrace();
				
			}finally{
				request.getRequestDispatcher("Sistema.jsp").forward(request, response);
			}
		
	}
	
	protected void buscar(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Integer id= new Integer(request.getParameter("id"));
		try{
			Usuario usu = new UsuarioDao().findBycode(id);
			request.setAttribute("Usuario", usu);
			
		}catch(Exception e){
			
		}finally{
			request.getRequestDispatcher("altera.jsp").forward(request,response);
		}
		
	}
	
	protected void alterar(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String nome = request.getParameter("nome");
		String email = request.getParameter("email");
		Usuario usu = new Usuario();
		usu.setNome(nome);
		usu.setEmail(email);
		try{
			new UsuarioDao().update(usu);
			
			request.setAttribute("Mensagem: ", "Dados alterados com sucesso...");
		}catch(Exception ex){
			
			request.setAttribute("Mensagem: ", "Error..."+ ex.getMessage());
						
		}finally{
			request.getRequestDispatcher("listar.jsp").forward(request,response);
		}
		
	}
	
	protected void excluir(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Integer id= new Integer(request.getParameter("id"));
		
		try{
			new UsuarioDao().delete(id);
		}catch(Exception ex){
			
			request.setAttribute("Mensagem: ","ERROR..."+ex.getMessage());
		}finally{
			request.getRequestDispatcher("Sistema.jsp").forward(request, response);
		}
	}
	
	
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<link rel="stylesheet"
href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript"
src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script type="text/javascript"
src="https://code.jquery.com/ui/1.12.0/jqueryui.js"></script>


<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastrar Usuario</title>


</head>
<body>
	<center>
		<h1>Cadastrar Usuario</h1>
	</center>
	<div id="create">
		<form id="form1" action="Controle?cmd=create" method="post">
			Nome<br /> <input type="text" name="nome" placeholder="Digite seu Nome" value="" size="50" id="nome" /><br />
			
			Email<br/> <input type="email" name="email" placeholder="Digite o Email" value="" size="50" id="email" /> <br /> 
			<input type="submit" value="Enviar" />

		</form>

	</div>
	
</body>
</html>

Eu tenho problema de visão e não encontrei onde você exibe o conteúdo do atributo msg que insere no request, ao fim do processo, antes de chamar o dispatcher.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<link rel="stylesheet"
href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript"
src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script type="text/javascript"
src="https://code.jquery.com/ui/1.12.0/jqueryui.js"></script>


<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastrar Usuario</title>


</head>
<body>
	<center>
		<h1>Cadastrar Usuario</h1>
	</center>
	<div id="create">
		<form id="form1" action="Controle?cmd=create" method="post">
			Nome<br /> <input type="text" name="nome" placeholder="Digite seu Nome" value="" size="50" id="nome" /><br />
			
			Email<br/> <input type="email" name="email" placeholder="Digite o Email" value="" size="50" id="email" /> <br /> 
			<input type="submit" value="Enviar" />
		
	 
		</form>
		
	
	 
	</div>
	 ${msg }
	
</body>
</html>

continua sem aparecer a mensagem, nao tenho certeza se fiz do jeito certo

correto :

${Mensagem}

{ },s.

ja tentei assim, mas nada continua a mesma coisa

eu reparei uma coisa

request.setAttribute("Mensagem: ", msg);

retire o “:” , isso vai dar erro ao executar.

retirei meu camarada, porem nada mudou, a mensagem nao aparece

Complementando as respostas do @Daniel_Dias, quando você trabalha com JSP e servlets, você pode escolher entre usar scriptlets (que não são recomendados) e JSTL/EL.
Scriptlets, a grosso modo, são tags que permitem incluir código java dentro de uma JSP

<body>
<%= request.getAttribute("mensagem") %>
<% out.println(request.getAttribute("mensagem")); %>
<% if(request.getAttribute("mensagem") != null) {
         out.println(request.getAttribute("mensagem"));
    }
%>
</body>

Viu como fica feio usar scriptlets?

Já a java serverpages standard tag library (JSTL) + Expression Language (EL) consolidam uma série de tags e ferramentas que facilitam o desenvolvimento, além de ser muito mais bonito, visualmente falando

<body>
${mensagem}
<c:if test="${mensagem ne null}">
    <b>A mensagem é:<b/>${mensagem}
</c:if>
</body>

Repare na diferença e na qualidade desse código.

Agora, para que ambas abordagens funcionem, é necessário que, na servlet, você defina o valor do atributo “mensagem”. E isso é feito assim

request.setAttribute("mensagem", "A mensagem é assim");
//ou
String mensagem = "Dados gravados com sucesso!";
request.setAttribute("mensagem", mensagem);

Quando você invocar o dispatcher, os dados serão passados para a jsp e serão exibidos conforme for programado.

Detalhe: o primeiro arugmento do método setAttribute é o nome pelo qual você está chamando o atributo e deve ser o mesmo a ser recuperado na jsp

//Servlet
request.setAttribute("laranja", "Laranja");
//JSP
${laranja}
1 curtida

entendi, obrigado pela explicação , troquei onde estava Mensagem por msg, coloquei ${msg} no jsp, mas a bendita mensagem nao aparece

após quebrar muito a cabeça, consegui resolver o problema.
o problema estava na minha Classe Dao