Dúvida: Qual a melhor forma (ou correta) de exibir dados numa tabela

Pessoal, estou estudando JSP e Servlets e também JQuery e me deparei com uma situação.

Situação:
Imagine que você vai exibir uma tabela de produtos onde serão exibidos 20 itens por página por exemplo. Com isso, você tem aquele famoso operador (que eu não lembro o nome):

Página anterior - 1 - 2 - 3 - 4 - Próxima página

Como “operar” esse “operador”???

Caso 1:
Tudo isso é controlado pelo Server Side, ou seja, o clique em cada botão manipula uma consulta ao SGBD ou há uma lista criada; (Independentemente de linguagem de programação).

Caso 2:
Pode ser controlado pelo no Client Side, através de um JSON gerado pelo servidor e manipulado pelo JQuery.

Pensando de uma forma geral, num e-commerce, página pública ou um sistema web privativo.
Sendo um dos casos acima ou até mesmo um outro caso, existe uma forma correta ou mais fácil de fazer isso?

Eu procurei tópicos que me sanassem essa dúvida mas não encontrei, por isso abri esse!

Você poderia usar o recurso limit do MySQL, ficaria:

select * from < tabela> limit 0,20;

Nesse código, você pegaria as 20 primeiras linhas, a partir da primeira.

Agora você usaria uma variável que se iguale com o número da página, e multiplique por 20, assim pulando resultados já mostrados.

Ex: 20 x 3 (nº da página), ficaria:

select * from < tabela> limit 60,20;

assim pegando os 20 resultados após a 60ª linha.

Muito obrigado pelo esclarecimento STNeto!

Eu realmente optei por fazer dessa forma pois é a que estou mais habituado.
Minha questão é se realmente existe uma maneira correta de fazer isso!