Problema com Session

Estou precisando de Ajuda!

Antes, session.putValue() e session.getValue() funcionavam normalmente, mas agora que eu criei uma classe, e chamo essas funções de dentro de algum método desta classe, da o seguinte erro: Attempt to use a non-final variable session from a different method. From enclosing blocks, only final local variables are available. Alguem poderia me explicar o que é isso?
Obrigado…

bem-vindo ao Portal Java, oq vc quer é bindar atributos na session? Pq não usa setAttribute() e getAttribute()? :roll:

Olá mateus, obrigado pelo ajuda…

‘bindar’ ? Não sei o que é isso… :cry:

Dentro da classe, eu tenho um metodo que grava valores na session e outro que retorna esses valores… mas infelizmente eles não estão funcionando…

Mudei para setAttribute() e getAttribute(), mas não resolveu meu problema, continua dando o mesmo erro =(, o pior, é que session.setAttribute() e session.getAttribute() funcionavam quando estavam ‘soltos’ no script.jsp, mas agora que criei a classe… dá aquele erro :???:

Obrigado…

ta, perai, posta os teus códigos ai e mete uns comentários nos teus problemas pra facilitar pra gente :joia:

ntão vamos lá:

obs: desculpe qualquer ‘grosseria’ no código, estou mudando para JSP agora…

//arquivo classes.jsp contendo todas minhas classes

class Usuarios { //esta é a classe usuários o.O
      
      //metodo para selecionar dados do usuário(nome, codigo)
      private int selDadosUsr(String codUsr, Statement conBD) throws SQLException  {
              ResultSet resDUsr = conBD.executeQuery("SELECT cod_usuario, nome FROM alunos WHERE cod_usuario = '" + codUsr + "'");
              if (resDUsr.first()){
                  String cod = resDUsr.getString("cod_usuario");
                  String nome_al = resDUsr.getString("nome");
                  session.setAttribute("ss_nome_al", nome_al); //e é aqui que dá o erro....
                  session.setAttribute("ss_cod_al", cod);
                  return 1;
              }
              else {
                    return 0;
             }
        }

}

obs: o arquivo classes.jsp é incluido em outros usando <%@include file=“class.jsp” %>

o erro que está aparecendo:

Generated servlet error:
C:\Arquivos de programas\Apache Tomcat 4.0\work\localhost\jsp\biblio\ProcAluno$jsp.java:156: Attempt to use a non-final variable session from a different method. From enclosing blocks, only final local variables are available.
session.setAttribute(“ss_nome_al”, nome_al);

Obrigado…

óh céus… cara, tu ta declarando essas classes dentro de <% %>??? Isso quer dizer q tu ta declarando classes internas de método, no caso, o método service() do Servlet gerado desse JSP… e ai tu ta tentando usar o objeto implicito session, q não é final dentro dessa classe interna de método e ele nao vai compilar por causa disso mesmo, regras de linguagem… oq eu te aconselho é tirar essas tuas classes desse jsp!!! Ou no mímino declara-las dentro de <%! %> e passar essa session como referencia aos métodos, sei lá, é horrivel do mesmo mas tu vai continuar usando jsp ehhehaeheahueauh

Sim, eu vou… heheheehhe :cool:

Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?

[quote=“valbaso”]Sim, eu vou… heheheehhe :cool:

Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?[/quote]

da mesma maneira q vc declarou dentro do <% %> … auehuae, é só colocar um “!” na tag… entenda q oq vc declara entre <%! %> vira atributos do servlet gerado, e oq vc declara dentro de <% %> vira código dentro do método service() do servlet gerado

Opa, valeu ae, fiz oque vc sugeriu, e funcionou perfeitamente… Obrigado

(obs: Eu não tinha cadastro, um colega tinha me emprestado o login)