Como fazer com que o SERVLET direcione para página JSP correspondente a opção selecionada no SELECT

1 resposta
P

Estou fazendo um trabalho de jogo interativo, a página home.jsp, cadastrar o nome e senha do usuário e carrega para a pag1.jsp, que tem a 1ª pergunta, com 3 opção do tipo radio, escolho uma opção e clico em continuar, e assim até a pag10.jsp que carrega para página respostas.jsp, com o resultado do usuário.

Quero fazer isso utilizando SERVLET.

Como faço?

comecei fazendo assim, me ajudem

out.println("");

out.println("");

out.println(Servlet Servlet);

out.println("");

out.println("");

out.println(JOGO INTERATIVO
);

out.println("");

out.println("Nome: 
");

out.println(Senha: 
);

/**out.printl() */

out.println(Acesso:);

out.println(””);

out.println(Pergunta1);

out.println(Pergunta2);

out.println(Pergunta3);

out.println(Pergunta4);

out.println(Pergunta5);

out.println(Pergunta6);

out.println(Pergunta7);

out.println(Pergunta8);

out.println(Pergunta9);

out.println(Pergunta10);
out.println("<input type='submit' value='OK' name='Enviar' />");
        //out.println("<h1>Servlet Servlet at " + request.getContextPath () + "</h1>");

                       
        out.println("</body>");
        out.println("</html>");
        
    } finally { 
        out.close();
    }
}

Como fazer com que o SERVLET direcione para página JSP correspondente a opção selecionada no SELECT

1 Resposta

fesaab

Primeiro de tudo: quando vc for colar seu codigo fonte, coloque-o entre as tags [ code] e [ /code] (sem os espaços).

Vc ta escrevendo todo teu código HTML em instruções println() ?
Eu te recomendo fortemente a não fazer isso. Uma boa prática quando se desenvolve com servlets e jsp é utilizar o JSP apenas para mostrar os dados (apenas para visualização das coisas) e o servlet só para tratar as requisições do usuário.

No teu caso, eu te aconselho a fazer uma pagina index.jsp que vai ser a primeira pagina que o usuario vai acessar, nela vc cria o formulário para o usuario se cadastrar e quando ele clicar em cadastrar, vc redireciona ele pro servelt q cuida do cadastro.

Vou esboçar um código para isso:

index.jsp

<html>
	<head>
		<title>Cadastro de novo usuario</title>
	</head>
	<body>
		Informe seus dados<br/>
		<form method="post" action="cadastro"> <!-- action informa o caminho do servlet que vai tratar a requisição!-->
			Nome: <input type = 'text' name = 'nome' /><br>
			Senha: <input type = 'password' name = 'senha' /><br>
			<input type = "submit" name = "enviar" />
		</form>
	</body>
</html>

Quando o usuario clicar no botão Enviar, o brower vai chamar o endereço especificado no atributo action da tag .
Tudo que vc tem que fazer é especificar o caminho do teu servlet. No caso eu vou enviar a requisicao para o servlet cadastro.
Como vc está enviando a requisição via POST (method=“post”), utilize o método doPost() do teu servlet:

cadastro.java

public class cadatro extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //recupera o que foi mandado
        String nome = request.getParameter("nome");
        String senha = request.getParameter("senha");

        //cadastra o usuario
        //.........

        //encaminha para a primera pergunta
        RequestDispatcher proxima = request.getRequestDispatcher("pag1.jsp");
        proxima.forward(request, response);
    }

}

O servlet recupera os dados do usuario, cadastra ele e mostra a pag1.jsp para o usuario.

A mesma coisa para as paginas de pergunta, crie um formulario que envia a pergunta para um outro servlet que recupera a resposta, trata, e repassa para a proxima pergunta…

Bom, essa é minha opinião…
Espero ter ajudado.

Criado 10 de abril de 2010
Ultima resposta 10 de abr. de 2010
Respostas 1
Participantes 2