Java, Struts e Hibernate

Estou começando a trabalhar com esta filosofia de programação e gostaria de saber o seguinte:

Estou fazendo uma página JSP que lista todo o conteúdo de uma tabela e está funcionando corretamente. Porém quando a quantidade deinformação cresce na tabela minha aplicação começa a ficar lenta pois eu utilizo um objeto do tipo List, com isto ele armazena todo o conteúdo da tabela para depois jogar na JSP.

Teria alguma maneira de fazer com que o objeto do tipo List capture apenas a quantida de informações necessárias para mostrar na primeira página e ao clicar em “próxima”, busque mais outra quantidade.

Por exemplo:

Na minha JSP eu mostro 15 linhas por página e logo abaixo tenho os links (início, anterior, proximo e último). Entaum eu gostaria que minha List capturasse de 15 em 15… Tem como?

Que tal um select com between?

eu tenho essas duas classes…

public class Produto {

private String cod_prod;
private String desc_prod;
.
.
.

getters e setters

}

public class Indices{

private int numero;

getters e setters

}

para conseguir capturar o valor da classe Indices… e
salvar no no campo cod_prod da classe Produto

o q é preciso ser feito?