Duvidas no while rs.next();

Olá bom dia…Bom a duvida é a seguinte, estou preenchendo os campos de uma tabela, e para tal tenho que incrementar o Registro, é o que acontence quando inicializo o while, só que para preencher de forma correta o registro do CODDS(codigo do dia ),e a MATERIA tem que ser incrementado dentro do for, quando faço isso, ele alterar o registro DUAS VEZES, pq, o while rs.next() faz isso. Como posso fazer para que a condição while seja somente de final de arquivo?
em anexo o codigo…

<%while (rs.next()){%>
 <% String M=rs.getString("MATERIA");%> 
         <% int J=rs.getInt("CODDS");%> 
     <tr>
        <td><b><font size="1">Das<%=rs.getString("HORINI")%> às <%=rs.getString("HORFIM")%></font></b></td>
        <%for (int i=2; i<=7; i++){%>        
           <td><p align="left"><font size="1">
             <% if(J==i){%><%out.println( M );%> <%rs.next();J=rs.getInt("CODDS");%>
             <%}else{
                 out.println(".");
             }%>
           </font></td>        
        <%}%>
     </tr>   
<%}%>  

Por favor de uma olhada no codigo.
Desde de já AGRADEÇO.[/img]

cara…tem a propriedade (EOF)?
tipo em asp é assim

do while not rs.eof
//codigo
rs.movenext
loop

o eof indica fim de arquivo, seria o fim da sua query

É exatamente isso que eu quero…esse mesmo codigo em java(jsp).

do while not rs.eof 
//codigo 
rs.movenext 
loop 

pq tu não trabalha com Collection? Em dois laços tu implementa isso de maneira simples e clara.

Verifique se existe o rs.hasNext().

Já tentou usar esse método:

rs.isAfterLast()