Página de alteração de dados não funciona - JSP

Salve galera, a solução deve ser bem simples, mas não estou encontrando se puderem ajudar agradeço.

Estou seguindo um livro para aprender JSP e aparentemente tem algo errado na explicação e no código dele. Basicamente é um sistema simples de cadastro de clientes e estou com problema na alteração de dados dos clientes já cadastrados. Nenhum erro é exibido, o que acontece é que depois de fazer as alterações de qualquer dado e clicar no botão Alterar vc é redirecionado para página principal, mas nenhuma alteração é efetuada na base de dados.
Pelos testes que fiz o problema esta neste trecho:

+ "WHERE codigo=" + request.getParameter("codigoAlterar");

Provavelmente não está retornando o código correto para efetua a alteração no BD.

Seguem parte do código:
clientes.jsp:

} else if (acao.equals(“alterar”)) {
String sql = "UPDATE cliente SET "
+ “nome=’” + request.getParameter(“nome”).toUpperCase() + “’,”
+ “endereco=” + request.getParameter(“endereco”) + “,”
+ “numero=’” + request.getParameter(“numero”) + “’,”
+ “complemento=’” + request.getParameter(“complemento”) + “’,”
+ “bairro=” + request.getParameter(“bairro”) + “,”
+ “cidade=” + request.getParameter(“cidade”) + “,”
+ “estado=” + request.getParameter(“estado”) + “,”
+ “rg=’” + request.getParameter(“rg”) + “’,”
+ “cpf=’” + request.getParameter(“cpf”) + “’,”
+ “telfixo=’” + request.getParameter(“telfixo”) + “’,”
+ “telcel=’” + request.getParameter(“telcel”) + “’,”
+ “email=’” + request.getParameter(“email”) + “’,”
+ “sexo=’” + request.getParameter(“sexo”) + “’,”
+ “datanasc=’” + request.getParameter(“datanasc”) + “’,”
+ “datacad=’” + request.getParameter(“datacad”) + “’,”
+ “obs=’” + request.getParameter(“obs”).trim() + “’”
+ “WHERE codigo=” + request.getParameter(“codigoAlterar”);
instrucao.executeUpdate(sql);

clientesAlterar.jsp:

int endereco, bairro, cidade, estado;
    String codigo, nome, numero, complemento, rg, cpf, telfixo, telcel, email, sexo, obs;
%>

<!DOCTYPE html>

<%
    try {
        Class.forName("org.postgresql.Driver");     //Inform which driver load
        conexao = DriverManager.getConnection("jdbc:postgresql://localhost/sisWebJee?user=agt&password=123&ssl=false");     //Path to connect with DB
        instrucao = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);      //Initialize object to send SQL's code

        codigo = request.getParameter("codigo");
        if (codigo == null) {
            codigo = "0";
        }
        resultado = instrucao.executeQuery("SELECT * FROM cliente WHERE codigo=" + codigo);
        if (resultado.next()) {
            nome = resultado.getString("nome");
            endereco = resultado.getInt("endereco");
            numero = resultado.getString("numero");
            complemento = resultado.getString("complemento");
            bairro = resultado.getInt("bairro");
            cidade = resultado.getInt("cidade");
            estado = resultado.getInt("estado");
            rg = resultado.getString("rg");
            cpf = resultado.getString("cpf");
            telfixo = resultado.getString("telfixo");
            telcel = resultado.getString("telcel");
            email = resultado.getString("email");
            sexo = resultado.getString("sexo");
            datanasc = resultado.getDate("datanasc");
            datacad = resultado.getDate("datacad");
            obs = resultado.getString("obs");
        
%>

<html>
    <head>
        <script language="javascript" src="util/funcoes.js"></script>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Cadastro de Clientes</title>
    </head>
    <body>

        <h1 align="center">Sistema de Cadastro de Clientes</h1><br>
        <h2 align="center">
            <font style="color: dodgerblue">Alterar Cadastro de Cliente</font>
        </h2>

        <form name="formCadastrar" method="post" action="clientes.jsp?acao=alterar">
            <p>
                Código:
                <input type="text" name="codigoAlterar" value="<%= codigo%>" disabled="true" />

Fiz testes colocando o número manualmente no código de clientes.jsp, retirando request.getParameter, e a alteração funciona perfeitamente:

+ "WHERE codigo=1"

Testei utilizando como request.getParameter(“codigo”), não funcionou.
Como trazer o código certo automaticamente, na verdade não existe nenhum codigoAlterar na página clientesAlterar.jsp ainda assim o livro diz para usar este parâmetro.

Fiz alguns teste e cheguei uma solução que estava funcionando, mas não sei porque parou de funcionar.

Consegui resolver novamente com uma nova solução, funcionando até o momento.
Adicionei o seguinte código.
clientesAlterar.jsp:

<form name="formCadastrar" method="post" action="clientes.jsp?acao=alterar">
        <p>
            Código:
            <input type="text" name="codigo" value="<%= codigo%>" disabled="true" />-
            <input type="hidden" name="codigoAlterar" value="<%= codigo%>" />

Dessa forma o request.getParameter na instrução SQL para UPDATE na página clientes.jsp passou a funcionar, retornando qual item da tabela deveria ser atualizado :

“WHERE codigo=” + request.getParameter(“codigoAlterar”);