p mim colocar um objeto num contexto de sessao(HttpSession), eu preciso serializar ele, pq qnd n tou serializando qnd compila da pau!!!
Os objetos colocados na sessao http precisam ser SERIALIZAVEIS, mas nao serializados, pq a especificacao preve que um servlet container pode querer guardar as informacoes da sessao em disco, ao inves de deixar na memoria, ou passar informacoes da sesao pela rede para outros servidores em um cluster.
cv escreveu:
[quote]
Os objetos colocados na sessao http precisam ser SERIALIZAVEIS, mas nao serializados[/quote]
ql a diferenca???
Um objeto serializável é um objeto que pode ser serializado, ele precisa implementar a interface java.io.Serializable.
Ou seja, você não precisa serializar o objeto, quem faz isso é o Servlet Container, no seu caso, o Tomcat.
Serializavel: que pode ser serializado
Serializado: que foi serializado (transmitido em forma de uma serie de bits por algum meio, rede, disco, atabaque, sinal de fumaca, o que seja)
Um objeto é serializável quando:
-
A sua classe implementa Serializable, e
-
Todos os seus campos que não são ‘transient’ são Serializable, ou então são tipos primitivos, ou então:
-
A sua classe implementa Externalizable (que implementa Serializable), e
-
os métodos writeExternal e readExternal estão corretamente implementados.
Não é suficiente só implementar Serializable. Por exemplo, na Sun JVM, a classe que implementa java.security.cert.Certificate (acho que é com.sun.security.X509Certificate se não me engano) implementa Serializable, mas se você tentar serializá-la, terá um problema que algum dos campos dessa classe não está conseguindo ser serializado corretamente.