Passagem de Parâmetros

14 respostas
Felipe

Como faço para passar parâmetros para um servelet, através de um link?

tentei isso, mas naum funcionou (controler é o meu servlet)

<a href="controler?acao=1">

ele abriu o servlet, mas não passou o parâmetro.

Através de um form está funcionando.

Obrigado

14 Respostas

marciolx

Veja se o seu servlet não está implementando apenas o método doPost, a query depois do ? funciona com o método doGet

Felipe

Tem os dois:

package material;

import javax.servlet.*;
import javax.servlet.http.*;

public class Controler extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		performTask(request,response);
	}

	public void doPost(HttpServletRequest request,HttpServletResponse response){
		performTask(request,response);
	}

	public void performTask(HttpServletRequest request,HttpServletResponse response){
		String url="";
		HttpSession sessao;
		String opcao = request.getParameter("opcao");
		System.out.println(opcao);
		int iopcao=0;
		if (opcao != null) iopcao = Integer.parseInt(opcao);
		try{
			switch(iopcao)	{
				case 0: String login = request.getParameter("login");
								String senha = request.getParameter("senha");
								if (login == null || senha == null)
									url= "/index.html";
								else{
									sessao = request.getSession(true);
									sessao.setAttribute ("login", new LoginBean(login,senha));
									url= "/index2.html";
								};
								break;
				case 1: url="categorias.jsp";
								break;
			}
			getServletContext().getRequestDispatcher(url).forward(request,response);
		}catch (Exception e) {
			System.out.println("AgendaServlet falhou: ");
			e.printStackTrace();
		}
	}
}
marciolx

Então… segundo seu código o parâmetro passado deve se chamar opcao e não acao :slight_smile:

Felipe

ops!! desculpa

foi erro meu, eu mexi no código depois q eu coloquei a primeira pergunta.

Não ta funcionando do mesmo jeito.

rfpsatin

VC NÃO cometeu um erro de digitação aqui não colega, não deveria ser opcao?

abraço

marciolx

Então estão faltando os outros parâmetros, login e senha, mas você não vai passá-los por GET, vai?

Felipe

É opção

é q depois q coloquei a primeira pergunta, eu mexi no código, em tudo, atá no link já.

já tá

<a href="controler?opcao=1">
marciolx

[quote=“Felipe”]É opção

é q depois q coloquei a primeira pergunta, eu mexi no código, em tudo, atá no link já.

já tá

<a href="controler?opcao=1">

ok, o que é que não está funcionando, qual o problema?

Felipe

No servlet, ele deve passar pelo case 1, não no case 0, por isso não estou passando os parametros login e senha.

marciolx

quer dizer que ele não está passando pelo case 1?
você fez debug do valor de iopcao antes de entrar no switch?
viu se na url do servlet (browser) apareceu mesmoopcao=1?

Felipe

O que não está funcionando é que não está passando o parametro pelo link.
Mostrei o valor, mas não mostra nada.

Quando eu passo por form, ele mostra, dá certo.

rfpsatin

deixa ver se entendi, vc ta querendo q ele vá direto a opção 1, certo?
então ele teria q ir p/ a página x.jsp certo?

se for isso, parece estar faltando um / na tua url, tipo"/teste.jsp" e não “teste.jsp”

Felipe

Pessoal

não sei o que aconteceu, mas agopra funcionou

estava mesmo faltando a /, mas não era esse o erro, porque ele nem mostrava o valor do opcao.
De repente funcionou, e deu o erro da falta da barra.

Valeu

rfpsatin

Abraço

Fica com Deus.

Criado 2 de dezembro de 2003
Ultima resposta 2 de dez. de 2003
Respostas 14
Participantes 3