Cache X JSP

Oi Pessoal, td bem??
Estou com um probleminha na minha pagina JSP.
Ela faz um acesso ao Banco. E, dependendo da situação, ela traz alguns registros.
Mas quando eu acesso a mesma pagina varias vezes, ela começa a repetir os registros. Mesmo depois de eu ter mudado o registro no BANCO DE DADOS! Se eu nao altero o registro no SGBD ele começa a duplicar, triplicar…cada acesso que eu faço na pagina ele coloca mais um registro…e eu ja coloquei um monte de linhas para nao guardar cache. Alguém tem alguma luz???
Segue o trecho do meu codigo

<html>
<head>
	<title>Aniversariantes do Dia</title>
<%@page import="java.util.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.text.*"%>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="REFRESH" CONTENT="5">


<%
       response.setDateHeader("Expires", -1);
       response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
       response.setHeader("Pragma", "no-cache");
       if (request.getProtocol().equals("HTTP/1.1"))
       {
        response.setHeader("Cache-Control", "no-store");
       }
       else
       {
         response.setHeader("Cache-Control","no-store"); //HTTP 1.1

       }
%>

</head>

Desde já eu agradeço

[]´s

[quote=“teteorp”]Oi Pessoal, td bem??
Estou com um probleminha na minha pagina JSP.
Ela faz um acesso ao Banco. E, dependendo da situação, ela traz alguns registros.
Mas quando eu acesso a mesma pagina varias vezes, ela começa a repetir os registros. Mesmo depois de eu ter mudado o registro no BANCO DE DADOS! Se eu nao altero o registro no SGBD ele começa a duplicar, triplicar…cada acesso que eu faço na pagina ele coloca mais um registro…e eu ja coloquei um monte de linhas para nao guardar cache. Alguém tem alguma luz???
Segue o trecho do meu codigo

<html>
<head>
	<title>Aniversariantes do Dia</title>
<%@page import="java.util.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.text.*"%>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<META HTTP-EQUIV="REFRESH" CONTENT="5">


<%
       response.setDateHeader("Expires", -1);
       response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
       response.setHeader("Pragma", "no-cache");
       if (request.getProtocol().equals("HTTP/1.1"))
       {
        response.setHeader("Cache-Control", "no-store");
       }
       else
       {
         response.setHeader("Cache-Control","no-store"); //HTTP 1.1

       }
%>

</head>

Desde já eu agradeço

[]´s[/quote]

Ok, posta o código que você lista os dados do DB pra galera dá uma olhada!

:wink:

Segue o Codigo:

...
...
<%! private ArrayList relacao = new ArrayList(); %>

<%

        Connection con = null;
        Statement stmt = null;

        try
	    {
         	Calendar hoje = Calendar.getInstance();
         	String filtro = "";
         	if (hoje.get(hoje.DAY_OF_WEEK) != 2 )
         	{
             filtro = "WHERE C03 = TO_CHAR(SYSDATE,'DD/MM') ";
         	}
            else
            {
             filtro = "WHERE C03 IN (TO_CHAR(SYSDATE,'DD/MM'),TO_CHAR((SYSDATE-1),'DD/MM'),TO_CHAR((SYSDATE-2),'DD/MM')) ";
    		}
            Class.forName ("oracle.jdbc.driver.OracleDriver");
    		String url = "jdbc:oracle:thin:@192.168.1.150:1521:PRD";
    		con = DriverManager.getConnection(url, "USR", "PSW" );
    	    stmt = con.createStatement();
    	    String query = " SELECT C01,";
    	   	       query = query + " C02, ";
    	   		   query = query + " C03";
    			   query = query + " FROM TABLE_C ";
    			   query = query + filtro ;
    			   query = query + " ORDER BY C03, C01";

             System.out.println(query);

    	     ResultSet rs = stmt.executeQuery(query);
             while (rs.next())
             {  ArrayList item = new ArrayList(1);
                item.add(rs.getString(1));
                item.add(rs.getString(2));
                item.add(rs.getString(3));
                relacao.add(item);
                item = null;
             }
             con.close();
             con = null;
             stmt.close();
             stmt = null;
        }

       catch(Exception e)
       {
           con.close();
           con = null;
           stmt.close();
           stmt = null;
           System.out.println("Problemas - Verificar");
           e.printStackTrace();
           return;
       }

%>


         <table width="100%" cellpadding="8" >

<%
          int i=1;
          int tam = relacao.size();
          String figura1,figura2,figura3,figura4;
          for (i=0; i<tam; ++i)
          {   if (i%2!=0)
      		  {
      		    figura1 = "anniv-24.gif";
      		    figura2 = "anniv-28.gif";
      		    figura3 = "ballons-20.gif";
      		    figura4 = "cotillons-03.gif";
      		  }
          	  else
      	      {
      	        figura1 = "cotillons-03.gif";
      		    figura2 = "ballons-20.gif";
      		    figura3 = "anniv-28.gif";
      		    figura4 = "anniv-24.gif";
      	      }

%>
            <tr>
				<td width="10%" rowspan = "3"><img src="Fotos/<%= (String) (((ArrayList) (relacao.get(i))).get(1)) %>" border="0" align="left" width="150" height="200">
				</td>
				<td> <img src="Fotos/<%=figura1%>" border="0" align="center"> </td>
				<td> <img src="Fotos/<%=figura2%>" border="0" align="center"> </td>
		    </tr>

            <tr>
          		<td width="10%" COLSPAN=2 >
   				   <font size="4">
   				   <b>
   				      <%= (String) (((ArrayList) (relacao.get(i))).get(0)) %>, faz aniversário no dia <%= (String) (((ArrayList) (relacao.get(i))).get(2)) %>
   				   </b>
   				   </font>
          		</td>
			</tr>

           <tr>
        		<td width="50%"> <img src="Fotos/<%=figura3%>" border="0" align="center"> </td>
           		<td width="50%"> <img src="Fotos/<%=figura4%>" border="0" align="center"> </td>
	       </tr>

<%
          }
          //relacao = null;

%>


        </table>


</body>


</html>

O engraçado é quando eu coloquei a linha relacao = null;
Quando eu coloquei esta linha, a pagina aparentemente funcionou. Mas depois de 3 acessos seguidos deu exceção de NullPointer. Quando eu comento começa o lance de duplicação…

Valeu

[]´s

Ae galera.
Já resolvi meu problema. :cool:

O problema era a seguinte linha:

<%! private ArrayList relacao = new ArrayList(); %> 

Valeu pela atenção :okok: