Servlet mais JSP

22 respostas
C

Bom dia,

Pessoal estou com um dúvida... estou fazendo um site em java web, estou conseguindo.. alterar, consultar, excluir, cadastrar... tudo usando banco de dados.
Só que é o seguinte.... tipo tenho um botão onde excluo cliente.. na hora que clico em exclui ele exclui e me retorna a msg "Cliente excluido com sucesso"
só que essa msg está na servlet... Eu sei q tenho q fazer um sendredirect para retornar para minha página jsp...
o problema é que não sei como que faço para colocar está msg de "cliente excluido com sucesso" lá...
Poderiam me ajudar?

Segue a jsp...

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="javax.security.auth.callback.TextOutputCallback"%>
<%@page import="java.util.List"%>
<%@page import="modelo.cadastro_vo"%>
<%@page import="modelo.cadastro_dao"%>
<%@page import="java.util.List"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <link href="style.css" type="text/css" rel="stylesheet" />
        <title>..: So Entregas Cadastro:..</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>


        <div>

            <%
                        if (session.getAttribute("obj_cad_vo") != null) {
                            cadastro_vo obj_cad_vo = (cadastro_vo) session.getAttribute("obj_cad_vo");
            %>
            <form action="/site_javaa/cadastro_servlet" method="post" name="">
<table>
<tr>
    <td> CNPJ</td>
     <td> <input  size="70" type="text" name ="cnpj" value="<%= obj_cad_vo.getCnpj()%>" /></td>
   </tr>
    <td> CIDADE</td>
     <td> <input size="70" type="text" name ="cidade" value="<%= obj_cad_vo.getCidade()%>" /></td>
   </tr>
     <td> EMAIL</td>
     <td> <input size="70" type="text" name ="email" value="<%= obj_cad_vo.getEmail()%>" /></td>
   </tr>
     <td> ENDEREÇO</td>
     <td> <input size="70" type="text" name ="endereco" value="<%= obj_cad_vo.getEnd()%>" /></td>
   </tr>
     <td> ESTADO</td>
     <td> <input size="70" type="text" name ="estado" value="<%= obj_cad_vo.getEst()%>" /></td>
   </tr>
     <td> INSCRIÇÃO ESTADUAL</td>
     <td> <input size="70" type="text" name ="inscricao" value="<%= obj_cad_vo.getInscricao()%>" /></td>
   </tr>
     <td> RAZÃO SOCIAL</td>
     <td> <input size="70" type="text" name ="razao" value="<%= obj_cad_vo.getRazao()%>"/></td>
   </tr>
     <td> SENHA</td>
     <td> <input size="70" type="text" name ="senha" value="<%= obj_cad_vo.getSenha()%>" /></td>
   </tr>
   <td> DDD</td>
     <td> <input size="70" type="text" name ="DDD" value="<%= obj_cad_vo.getDdd()%>" /></td>
   </tr>
     <td> TELEFONE</td>
     <td> <input size="70" type="text" name ="telefone" value="<%= obj_cad_vo.getTel()%>" /></td>
   </tr>
</table>


                <input type="submit" name="act" value="alterar" />
                <input type="submit" name="act" value="excluir" />
               <!-- <a href="/site_javaa/cadastro_servlet?act=excluir&email=<%= obj_cad_vo.getEmail()%>">excluir</a>-->

            </form>


            <% }%>

                       
            


            
            


        </div>

    </body>
</html>

Segue a parte do excluir cliente:

else if(opcao.contentEquals("excluir")) {
 String email = request.getParameter("email");
                obj_cad_vo.setEmail(email);

                if(obj_cad_dao.exc_cadastro(obj_cad_vo))
                {
               out.println("Cliente excluido com sucesso");
}

Eu tenho que fazer uma coisa mais ou menos assim né?

response.sendRedirect("retornaclientes.jsp?msg=excluido_ok");

Só que dai como chamdo isso lá na jsp?

22 Respostas

mathiasnw

Você pode dispachar a o request e o reponse para uma pagina e colocar a msg como atributo na request.

No servlet

request.setAttribute("msg",msg); RequestDispatcher rd = request.getRequestDispatcher(PAGINA); rd.forward(request,response);

Na pagina

&lt;%=request.getAttribute("msg")%&gt;

mathiasnw

mais uma coisa:

é mais interessante utilizar o RequestDispatcher porque não é enviado nenhum status de redirecionamento para o navegador.

O RequestDispatcher somente passa o request e o reponse para outra pagina ou servlet executar o trabalho,
enquanto o sendRedirect envia um sinal para o navegador redirecionar para outra pagina.

C

ok, entendi… mais dai como faço para trabalhar com essa linha?

<%=request.getAttribute("msg")%>

Mais está msg tenho que colocar em uma variavel?

Tipo quero fazer assim… if(msg)

cliente excluido

else

errro ao excluir!

como faço isso?

mathiasnw

No servlet você vai configurar o atributo como na mensagem acima e depois fazer o dispatcher.

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

Na linha acima foi configurado um atributo “msg” com o valor “Minha Mensagem”.

mathiasnw

No seu caso não é melhor colocar um valor true e false.

No servlet

request.setAttribute("salvo",true || false);

Na Pagina

&lt;%Boolean ok = (Boolean) request.getAttribute("salvo");%&gt; &lt;%if(ok){%&gt; Cliente salvo com sucesso. &lt;%}else{%&gt; Erro ao salvar cliente &lt;%}%&gt;

Outra coisa:

Tente estudar JSTL e EL, o codigo acima vai ficar muito mais simples.

C

Na página jsp está dando um erro de “;” expected… desculpe mais não conheço JSTL

mathiasnw

Certo em qual linha está ocorrendo esse erro.

é naquela que começa com “<%=” ??

C

na <%Boolean ok = (Boolean) request.getAttribute("salvo");%>

Está dando o erro de “;” expected.

E na

<%if(ok){%>

está dando erro de (symbol: variable ok)

mapleplayer

da uma olhada nesta apostila da caelum

você vai aprender Servlets, JSP, JSTL, EL e Struts 2 rapidinho, apostila fácil e rápida de ler, vale a pena

mathiasnw

Coloca o codigo todo.

C

mapleplayer - eu já tenho essa apostila é muito boa recomendo...

Desculpe estava faltando fechar uma %>

Agora na hora que tento localizar cliente que redireciona para a mesma jsp está dando este erro:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
root cause

java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.0.1 logs.

pagina jsp:
<%@page import="java.lang.Boolean"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="javax.security.auth.callback.TextOutputCallback"%>
<%@page import="java.util.List"%>
<%@page import="modelo.cadastro_vo"%>
<%@page import="modelo.cadastro_dao"%>
<%@page import="java.util.List"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <link href="style.css" type="text/css" rel="stylesheet" />
        <title>..: So Entregas Cadastro:..</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>


        <div>

            <%
                        if (session.getAttribute("obj_cad_vo") != null) {
                            cadastro_vo obj_cad_vo = (cadastro_vo) session.getAttribute("obj_cad_vo");
            %>
            <form action="/site_javaa/cadastro_servlet" method="post" name="">
<table>
<tr>
    <td> CNPJ</td>
     <td> <input  size="70" type="text" name ="cnpj" value="<%= obj_cad_vo.getCnpj()%>" /></td>
   </tr>
    <td> CIDADE</td>
     <td> <input size="70" type="text" name ="cidade" value="<%= obj_cad_vo.getCidade()%>" /></td>
   </tr>
     <td> EMAIL</td>
     <td> <input size="70" type="text" name ="email" value="<%= obj_cad_vo.getEmail()%>" /></td>
   </tr>
     <td> ENDEREÇO</td>
     <td> <input size="70" type="text" name ="endereco" value="<%= obj_cad_vo.getEnd()%>" /></td>
   </tr>
     <td> ESTADO</td>
     <td> <input size="70" type="text" name ="estado" value="<%= obj_cad_vo.getEst()%>" /></td>
   </tr>
     <td> INSCRIÇÃO ESTADUAL</td>
     <td> <input size="70" type="text" name ="inscricao" value="<%= obj_cad_vo.getInscricao()%>" /></td>
   </tr>
     <td> RAZÃO SOCIAL</td>
     <td> <input size="70" type="text" name ="razao" value="<%= obj_cad_vo.getRazao()%>"/></td>
   </tr>
     <td> SENHA</td>
     <td> <input size="70" type="text" name ="senha" value="<%= obj_cad_vo.getSenha()%>" /></td>
   </tr>
   <td> DDD</td>
     <td> <input size="70" type="text" name ="DDD" value="<%= obj_cad_vo.getDdd()%>" /></td>
   </tr>
     <td> TELEFONE</td>
     <td> <input size="70" type="text" name ="telefone" value="<%= obj_cad_vo.getTel()%>" /></td>
   </tr>
</table>


                <input type="submit" name="act" value="alterar" />
                <input type="submit" name="act" value="excluir" />
               <!-- <a href="/site_javaa/cadastro_servlet?act=excluir&email=<%= obj_cad_vo.getEmail()%>">excluir</a>-->

            </form>


            <% }%>

            <%Boolean ok = (Boolean) request.getAttribute("salvo");%>
            <%if(ok){%>
            Cliente excluido com sucesso.
            <%}else{%>
            Erro ao salvar cliente
            <%}%>
            




                       
            


            
            


        </div>

    </body>
</html>
mathiasnw

No servlet está sendo definido o atributo salvo?

Uma das variaveis está com o valor null

C

Segue a servlet:

else if(opcao.contentEquals("excluir")) {

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

                if(obj_cad_dao.exc_cadastro(obj_cad_vo))
                {
request.setAttribute("salvo",true || false);

                    RequestDispatcher rd = request.getRequestDispatcher("retornaclientes.jsp");
                    rd.forward(request,response);
C

Help…

C

Ninguém para me dar uma ajuda???

C

Galera é o seginte criei uma outra página exemplo.jsp... e redirecionei o meu sendredirect para ela...

dai coloquei lá o código como o amigo ai de cima tinha informado...

<%Boolean ok = (Boolean) request.getAttribute("salvo");%>
            <%if(ok){%>
            Cliente excluido com sucesso.
            <%}else{%>
            Erro ao salvar cliente
            <%}%>

Dai funcionou certinho....

mais quero isso na minha pagina retornaclientes.jsp

<%@page import="java.lang.Boolean"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="javax.security.auth.callback.TextOutputCallback"%>
<%@page import="java.util.List"%>
<%@page import="modelo.cadastro_vo"%>
<%@page import="modelo.cadastro_dao"%>
<%@page import="java.util.List"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <link href="style.css" type="text/css" rel="stylesheet" />
        <title>..: So Entregas Cadastro:..</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>


        <div>

            <%
                        if (session.getAttribute("obj_cad_vo") != null) {
                            cadastro_vo obj_cad_vo = (cadastro_vo) session.getAttribute("obj_cad_vo");
            %>
            <form action="/site_javaa/cadastro_servlet" method="post" name="">
<table>
<tr>
    <td> CNPJ</td>
     <td> <input  size="70" type="text" name ="cnpj" value="<%= obj_cad_vo.getCnpj()%>" /></td>
   </tr>
    <td> CIDADE</td>
     <td> <input size="70" type="text" name ="cidade" value="<%= obj_cad_vo.getCidade()%>" /></td>
   </tr>
     <td> EMAIL</td>
     <td> <input size="70" type="text" name ="email" value="<%= obj_cad_vo.getEmail()%>" /></td>
   </tr>
     <td> ENDEREÇO</td>
     <td> <input size="70" type="text" name ="endereco" value="<%= obj_cad_vo.getEnd()%>" /></td>
   </tr>
     <td> ESTADO</td>
     <td> <input size="70" type="text" name ="estado" value="<%= obj_cad_vo.getEst()%>" /></td>
   </tr>
     <td> INSCRIÇÃO ESTADUAL</td>
     <td> <input size="70" type="text" name ="inscricao" value="<%= obj_cad_vo.getInscricao()%>" /></td>
   </tr>
     <td> RAZÃO SOCIAL</td>
     <td> <input size="70" type="text" name ="razao" value="<%= obj_cad_vo.getRazao()%>"/></td>
   </tr>
     <td> SENHA</td>
     <td> <input size="70" type="text" name ="senha" value="<%= obj_cad_vo.getSenha()%>" /></td>
   </tr>
   <td> DDD</td>
     <td> <input size="70" type="text" name ="DDD" value="<%= obj_cad_vo.getDdd()%>" /></td>
   </tr>
     <td> TELEFONE</td>
     <td> <input size="70" type="text" name ="telefone" value="<%= obj_cad_vo.getTel()%>" /></td>
   </tr>
</table>


                <input type="submit" name="act" value="alterar" />
                <input type="submit" name="act" value="excluir" />
               <!-- <a href="/site_javaa/cadastro_servlet?act=excluir&email=<%= obj_cad_vo.getEmail()%>">excluir</a>-->

            </form>

            <% }%>
           

           <%Boolean ok = (Boolean) request.getAttribute("salvo");%>
            <%if(ok){%>
            Cliente excluido com sucesso.
            <%}else{%>
            Erro ao salvar cliente
            <%}%>
      

        </div>

             


    </body>
</html>

SEnão terei que ficar fazendo uma página separada pra cada método... aguem pode me ajudar???

C

Ah o erro que retorna é este:

HTTP Status 500 -


type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
root cause

java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.0.1 logs.

mathiasnw

Você precisa identificar qual variavel de referencia que está ‘null’.

Coloque a verificação abaixo:

&lt;%if(ok!=null && ok.booleanValue()){%&gt;

No Lugar de:

&lt;%if(ok){%&gt;
C

ok.... fiz isso e consegui consultar o cliente....

me trouxe certinho o cliente.. mais lá no final da pagina apareceu "erro ao salvar cliente" que é a msg depois do
<%if(ok!=null && ok.booleanValue()){%>

            Cliente excluido com sucesso.
            <%}else{%>
            Erro ao salvar cliente
            <%}%>
C

Alguma ajuda?

C

help…

C

Ningué pode de dar uma ajuda… não consegui ainda resolver o problema…
depois que faço a busca me retorna o cliente… mais fica aparecendo a msg lá em baixo de “cliente não salvo”
está msg é a que está na jsp no if.

Criado 24 de março de 2011
Ultima resposta 24 de mar. de 2011
Respostas 22
Participantes 3