Metodo DoGet não recebe parametro

Fala programadores, estou com um problema…

Na minha servlet cadastro bancario não esta recebendo por parametro acao que é recebido da página jsp…

O código chega a entrar no metodo doGet da servlet, mas na linha String acao = request.getParameter(“acao”); acao esta chegando como null e não passa os valores dos botões que estão no jsp.

A jsp esta assim:

	<form action="cadastroBancario" method="get" class="contabanco"
		id="contabanco"> .....

<input type="submit" id="SolicitarSaque" value="SolicitarSaque " size=300px
					onsubmit="document.getElementById('contabanco').action='cadastroBancario?acao=saque'" />
				</td>
				<td><input type="submit" value="Comissao" id="Comissao"
					onclick="document.getElementById('contabanco').action='cadastroBancario?acao=comissao'" />
				</td>
				</tr>


Servlet esta assim …

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HttpServletRequest req = (HttpServletRequest) request;
		HttpSession session = req.getSession();

		BeanCursoJsp beanCursoJsp2 = (BeanCursoJsp) session.getAttribute("usuario");
		BeanCadastroBanco beanCadastroBanco = (BeanCadastroBanco) session.getAttribute("banco");

		BeanInvestimento beanInvestimento = new BeanInvestimento();
		// String id = null;

		try {
			// beanInvestimento = daoInvestimento.consultar(id);
			String acao = request.getParameter("acao");
			String user = request.getParameter("user");

			System.out.println(acao);

			if (acao.equalsIgnoreCase("saque")) {

				daoEmail.SolicitarSaque(beanCursoJsp2.getEmail(), beanInvestimento.getValorSacar(),
						beanCadastroBanco.getConta(), beanCadastroBanco.getAgencia(), beanCadastroBanco.getNomeBanco(),
						beanCadastroBanco.getTipoConta(), beanCadastroBanco.getOperacaoBancaria(),
						beanInvestimento.getValorDepositado());

				RequestDispatcher view = request.getRequestDispatcher("/cadastrobanco.jsp");
				request.setAttribute("beanCursoJsp2", beanCursoJsp2);
				request.setAttribute("beanCadastroBanco", beanCadastroBanco);

				view.forward(request, response);

			} else if (acao.equalsIgnoreCase("comissao")) {

				daoEmail.SolicitarSaque(beanCursoJsp2.getEmail(), beanInvestimento.getValorSacar(),
						beanCadastroBanco.getConta(), beanCadastroBanco.getAgencia(), beanCadastroBanco.getNomeBanco(),
						beanCadastroBanco.getTipoConta(), beanCadastroBanco.getOperacaoBancaria(),
						beanInvestimento.getComissao());

				RequestDispatcher view = request
						.getRequestDispatcher("/cadastrobanco.jsp"); /* pagina de onde o servidor pega a requisição */
				request.setAttribute("user", daoCadastroBanco.consultarDados(beanCursoJsp2.getId()));
				request.setAttribute("beanCursoJsp2", beanCursoJsp2);
				request.setAttribute("beanCadastroBanco", beanCadastroBanco);
				view.forward(request, response);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

Veja esse exemplo que montei:

Supondo que vc tenha uma servlet BancoServlet que processa algumas ações.

Form para cadastrar uma nova conta:

<form name="novaContaForm" action="banco" method="POST">
	<input type="hidden" name="acao" value="novaConta" />
	
	<!-- demais campos para os dados da nova conta -->
	
	<button>Realizar saque</button>
</form>

Form para realizar saque:

<form name="realizarSaqueForm" action="banco" method="POST">
	<input type="hidden" name="acao" value="realizarSaque" />
	
	<!-- demais campos para os dados necessários para realizar o saque -->
	
	<button>Realizar saque</button>
</form>

Servlet que irá processar ações do banco:

@WebServlet("/banco")
public class BancoServlet extends HttpServlet {
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String acao = request.getParameter("acao");
		
		if ("novaConta".equals(acao)) {
			// executa a ação que irá criar uma nova conta com base nos parâmetros da requisição
		} else if ("realizarSaque".equals(acao)) {
			// executa a ação que irá realizar um saque com base nos parâmetros da requisição
		} else {
			// nenhuma ação reconhecida
		}
    }
}

Blza, deu certo também e agora me gerou uma dúvida, qual é a diferença entre .equals e equalsIgnorecase? Não lembro

Veja:

"Teste".equals("Teste") // true
"Teste".equals("teste") // false
"Teste".equalsIgnoreCase("teste") // true

O case é o aspecto maiúsculo ou minúsculo das letras. Quando usa o equalsIgnoreCase, a comparação ignora esse aspecto.