[RESOLVIDO]Minha Session se transforma em arquivo !?

2 respostas
fsfnit

Bom pessoal, fiz um código simples para testar alguns conceitos relacionados a sessão. Mando executar ai meu Browser (Firefox ou IE) pergunta se quero salvar o arquivo.
Ai sou obrigado a salvar o arquivo e executar ele localmente senão nada funciona.
Deem uma olhada no source:

public class SessaoServlet extends HttpServlet {
   
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession sessao = request.getSession();
        ListaDeNomes lista = (ListaDeNomes) sessao.getAttribute("listaDeNomes");

        if(lista == null){
            lista = new ListaDeNomes();
            sessao.setAttribute("listaDeNomes", lista);
        }
        response.setContentType("text/hmtl; Charset=ISO-8859-1");
            
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet SessaoServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            String botao = request.getParameter("botao");
            
            if("Apagar".equals(botao)){
                sessao.removeAttribute("listaDeNomes");
                //sessao.invalidade(); destroi o obj. sessao!
            }else{
                String nome = request.getParameter("nome");
                lista.adicionar(nome);

                for(int i=0; i< lista.tam(); i++){
                    nome = lista.get(i);
                    out.println("<P> Nome = "+ nome + "</P><BR>");
                }
            }
            out.println("<p>********************************************</p>");
            String s = response.encodeURL("/servlet-04/servlets/SessaoServlet");
            out.println("<form method='get' action='" + s +"'>");
            out.println("Digite um Nome: ");
            out.println("<input type='text' name='nome'><br><br>");
            out.println("<input type='submit' value='Enviar' name='botao'>");
            out.println("<input type='submit' value='Apagar' name='botao'>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
    } 
}
Minha html:
<html>
  <head>
    <title>Trabalhado com Sessao</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  </head>
  <body>
    <form method="get" action="/servlet-04/servlets/SessaoServlet">
     Digite um nome:<input type="text" name="nome"><p>
         <input type="submit" value="Enviar" name="botao">
    </form>
  </body>
</html>

2 Respostas

rissato

Não é bem “Minha Session se transforma em arquivo” não. Na verdade o problema é o contentType (em combinação com alguma combinação do seu browser) que está fazendo o msm baixar a saida do servlet ao inves de abri-la.

fsfnit

Eu escrevi hmtl/text nenhum browser interpreta isso.
Vlw pela dica.

Criado 8 de abril de 2009
Ultima resposta 8 de abr. de 2009
Respostas 2
Participantes 2