JSP e Servlet

27 respostas
L

Olá pessoal, td bem?

Estou tentando em meu servlet redirecionar quando um dos campos estão em branco par minha página jsp novamente, mas ele não acha a página dando o seguinte erro:

HTTP Status 404 - /servlet/CadastroQuest.jsp


type Status report

message /servlet/CadastroQuest.jsp

description The requested resource (/servlet/CadastroQuest.jsp) is not available.


Apache Tomcat/5.0.28

meu código está ssim:

/*<em>Caso, um dos campos do cadastro esteja vazio, exibe o formulário novamente

para ser preenchido</em>/

if(assunto.equals("") ||  descricao_questao.equals("")|| descricao_alt[0].equals("") ||

descricao_alt[1].equals("") || descricao_alt[2].equals("") || descricao_alt[3].equals("") || alter_correta.equals("")){

msg = “Por favor, preencha todos os campos.”;

req.setAttribute(“mensagem”, msg);

req.getRequestDispatcher(“CadastroQuest.jsp”).forward(req, res);

} //if

Se alguém puder me ajudar eu agradeço.

Abraços,

Sta. Leisley

27 Respostas

jgbt

onde esta a pagina que vc quer redirecionar???
o problrma ta no caminho para a pagina.

[]'s

L

jgbt:
onde esta a pagina que vc quer redirecionar???
o problrma ta no caminho para a pagina.

[]'s

minhas páginas jsp estão aqui:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\myApp1

e meus servlets estão aqui:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\myApp1\WEB-INF\classes

E

Você está tentando redirecionar para o “servlet” CadastroQuest.jsp…acho que vc queria só redirecionar para a página JSP, não?

Tenta usar response.sendRedirect(CadastroQuest.jsp)

jgbt

tente assim

req.getRequestDispatcher("/CadastroQuest.jsp").forward(req, res);

o container ta procurando na pasta corrente do servlet.
com a barra ela vai começar a procurar da raiz da app.

[]'s

L

jgbt:
tente assim

req.getRequestDispatcher("/CadastroQuest.jsp").forward(req, res);

o container ta procurando na pasta corrente do servlet.
com a barra ela vai começar a procurar da raiz da app.

[]'s

Então já tentei colocando a /CadastroQuest.jsp mesmo assim ele não acha.

rodrigo_gomes

se o seu contexto não for o root “/” tente assim

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);
L

Você está tentando redirecionar para o “servlet” CadastroQuest.jsp…acho que vc queria só redirecionar para a página JSP, não?

Tenta usar response.sendRedirect(CadastroQuest.jsp)

meu servlet não está aceitando este comando.

L

A primeira vez ele mostra a págian jsp, mas depois vc tenta chamar ela novamente e dá o seguinte erro:

HTTP Status 404 - /myApp1/servlet/servlet/Cad_Quest


type Status report

message /myApp1/servlet/servlet/Cad_Quest

description The requested resource (/myApp1/servlet/servlet/Cad_Quest) is not available.


Apache Tomcat/5.0.28

rodrigo_gomes

Onde você ta chamando essa jsp pela segunda vez?
Você chama o mesmo jsp?? Ou ta chamando um servlet?

Diogenes

Qual erro eh exibido qdo vc coloca o código seguinte?

req.getRequestDispatcher("/CadastroQuest.jsp").forward(req, res);
L

Diogenes:
Qual erro eh exibido qdo vc coloca o código seguinte?

req.getRequestDispatcher("/CadastroQuest.jsp").forward(req, res);

Então como eu disse ele chama a pág jsp e depois aparece o erro :

HTTP Status 404 - /myApp1/servlet/servlet/Cad_Quest


type Status report

message /myApp1/servlet/servlet/Cad_Quest

description The requested resource (/myApp1/servlet/servlet/Cad_Quest) is not available.


Apache Tomcat/5.0.28

L

Estou chamando o servlet que faz a verificação dos campos e que deveria voltar para o jsp.

rodrigo_gomes

humm, o servlet/Cad_Quest é seu servlet? :roll:

deixa ver se entendi: tudo começa no CadastroQuest.jsp onde vc preenche uns campos de formulario e manda pra servlet certo?

como está o action? (do seu form)

depois o servlet teria que retornar pra CadastroQuest.jsp com alguma resposta certo?

é no servlet que vc tá tentando fazer

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);

?

L

rodrigo_gomes:
humm, o servlet/Cad_Quest é seu servlet? :roll:

deixa ver se entendi: tudo começa no CadastroQuest.jsp onde vc preenche uns campos de formulario e manda pra servlet certo?

como está o action? (do seu form)

depois o servlet teria que retornar pra CadastroQuest.jsp com alguma resposta certo?

é no servlet que vc tá tentando fazer

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);

?

issoooo, esse é o processo. Pq? eu teria que fazer este comando no jsp?

rodrigo_gomes

não não, no seu jsp vc usa só a action do seu formulario mesmo…

mas eu não entendi quem é o

servlet/Cad_Quest

esse é o servlet?

como vc está submetendo para o servlet? (no action de sua jsp)

L

rodrigo_gomes:

não não, no seu jsp vc usa só a action do seu formulario mesmo…

mas eu não entendi quem é o

servlet/Cad_Quest

esse é o servlet?

como vc está submetendo para o servlet? (no action de sua jsp)

Então meu jsp é o CadastroQuest.jsp e meu servlet é o Cad_QuestServlet.

No action fica assim: Cad_Quest

Diogenes

No teu servlet tente fazer isso:

req.getRequestDispatcher("./CadastroQuest.jsp").forward(req, res);

E na sua .jsp coloque o atributo action do form como:

action="./servlet/Cad_Quest"

Se não der certo, anexe sua jsp e seu servlet no seu post pra gente dar uma olhada…

L

Diogenes:
No teu servlet tente fazer isso:

req.getRequestDispatcher("./CadastroQuest.jsp").forward(req, res);

E na sua .jsp coloque o atributo action do form como:

action="./servlet/Cad_Quest"

Se não der certo, anexe sua jsp e seu servlet no seu post pra gente dar uma olhada…

obrigada pela ajuda, vou tentar fazer isso qualquer coisa eu coloco o código para darem uma olhada…

t+

L

Leisley:
Diogenes:
No teu servlet tente fazer isso:

req.getRequestDispatcher("./CadastroQuest.jsp").forward(req, res);

E na sua .jsp coloque o atributo action do form como:

action="./servlet/Cad_Quest"

Se não der certo, anexe sua jsp e seu servlet no seu post pra gente dar uma olhada…

obrigada pela ajuda, vou tentar fazer isso qualquer coisa eu coloco o código para darem uma olhada…

t+

Realmente não consegui obter sucesso.

Meu código é o seguinte:

CadastroQuest.jsp:
.
.
.
<h1>CADASTRO DE QUESTÕES</h1></center>

<FORM ACTION="./servlet/Cad_Quest" METHOD=“POST”>
Assunto:<INPUT TYPE=“text” NAME=“assunto” SIZE=“15” MAXLENGTH=“50”>

Por favor, escreva aqui a descrição da questão:
. .

Cad_QuestServlet.java:

.

.

PrintWriter out = res.getWriter();

res.setContentType(text/html);
/**Caso, um dos campos do cadastro esteja vazio, exibe o formulário novamente
             para ser preenchido*/
            if(assunto.equals("") ||  descricao_questao.equals("")|| descricao_alt[0].equals("") ||
               descricao_alt[1].equals("") || descricao_alt[2].equals("") || descricao_alt[3].equals("") || alter_correta.equals("")){
                msg = "Por favor, preencha todos os campos.";
                req.setAttribute("mensagem", msg);
                req.getRequestDispatcher("./CadastroQuest.jsp").forward(req, res);
                
               
            } //if

.
.
.

O erro que aparece é:

HTTP Status 404 - /servlet/CadastroQuest.jsp


type Status report

message /servlet/CadastroQuest.jsp

description The requested resource (/servlet/CadastroQuest.jsp) is not available.


Apache Tomcat/5.0.28

rodrigo_gomes

vc tentou colocar

&lt;FORM ACTION="/myApp1/servlet/Cad_Quest" METHOD="POST"&gt;

e

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);

?

Diogenes

Leisley, edite seu post e utilize a opção de “Anexar arquivo”, e anexe a sua página e teu servlet ao post, fica mais fácil pra achar o problema… :wink:

L

Diogenes:
Leisley, edite seu post e utilize a opção de “Anexar arquivo”, e anexe a sua página e teu servlet ao post, fica mais fácil pra achar o problema… :wink:

Vc poderia me indicar um site que ensine anexar arquivo no meu post?

Obrigada

T+

rodrigo_gomes

desculpe a insistencia, mas vc tentou colocar assim?

&lt;FORM ACTION="/myApp1/servlet/Cad_Quest" METHOD="POST"&gt;

e

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);

pra anexar um arquivo no post, é so clicar no botão Anexar arquivo, que fica ao lado do botão enviar (quando vc ta postando uma mensagem)

te mais

L

rodrigo_gomes:
desculpe a insistencia, mas vc tentou colocar assim?

&lt;FORM ACTION="/myApp1/servlet/Cad_Quest" METHOD="POST"&gt;

e

req.getRequestDispatcher("/myApp1/CadastroQuest.jsp").forward(req, res);

pra anexar um arquivo no post, é so clicar no botão Anexar arquivo, que fica ao lado do botão enviar (quando vc ta postando uma mensagem)

te mais

Então tentei fazer isso e agora tentei o seguinte comando:
/*Caso, um dos campos do cadastro esteja vazio, exibe o formulário novamente
para ser preenchido
/
if(assunto.equals("") || descricao_questao.equals("")|| descricao_alt[0].equals("") ||
descricao_alt[1].equals("") || descricao_alt[2].equals("") || descricao_alt[3].equals("") || alter_correta.equals("")){

ServletContext sc = this.getServletContext();
                RequestDispatcher rd = sc.getRequestDispatcher("/CadastroQuest.jsp");
                if (rd !=null) {
                // Pass control to the JSP.
                 try {
                  rd.forward(req, res);
                 } catch (Exception e) {
                 sc.log("Problem invoking JSP.", e);
                    }
                }

       Na primeira vez obtenho sucesso, porém na segunda vez que tento fazer o teste obtenho o seguinte erro:

HTTP Status 404 - /myApp1/servlet/servlet/Cad_Quest


type Status report

message /myApp1/servlet/servlet/Cad_Quest

description The requested resource (/myApp1/servlet/servlet/Cad_Quest) is not available.


Apache Tomcat/5.0.28

Ele está indo para /servlet sendo que minha página jsp esta em myApp1

Diogenes

Primeiro, no tópico, click na opção “postreply”…
Aquih em baixo, a sua esquerda…

Depois, uma das opções no formulário de responder será “Anexar arquivo”, essa opção estará ao lado do botão “Enviar”…Clique nela.
Aparecerá em baixo um formulário chamado “Painel de Anexos”…
O resto eh bem intuitívo! :wink:

J

Tente mapear seu servlet para o mesmo path do JSP.
web.xml

SeuServlet pacote.ClasseSeuServlet SeuServlet seuServlet

no JSP

L

jprogrammer:
Tente mapear seu servlet para o mesmo path do JSP.
web.xml

<servlet>

<servlet-name>SeuServlet</servlet-name>

<servlet-class>pacote.ClasseSeuServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>SeuServlet</servlet-name>

<url-pattern>seuServlet</url-pattern>

</servlet-mapping>

no JSP
<form action=‘seuServlet’>

Então, mas eu estou usando o mesmo caminho para os dois.

Criado 6 de março de 2005
Ultima resposta 15 de mar. de 2005
Respostas 27
Participantes 6