Página Inicial e Servlets

6 respostas
celso.martins

brg:
Pessoal estou me familiarizando com o MVC mas tem algo que eu tenho dúvida.
Por exemplo a página inicial de um site qualquer que exiba as notícias já na index.jsp (por exemplo)
como eu chamaria os dados do banco?
Se eu quizesse fazer isto eu teria que fazer a index.jsp pular para um servlet que recupera os dados depois este reenviar para outro arquivo jsp?
algo tipo:

index.jsp->servletNoticias->main.jsp

Dá uma olhada nos Java Beans. Com esses objetos você pode recuperar informações sem que as regras de negócio e persistência estejam na sua página jsp.

<jsp:useBean id="" class="" scope=""/> <jsp:useBean id="" class="" scope=""/>

A propósito, fui procurar algum tutorial de JSP para indicar e não encontrei. Tem algum por aqui no GUJ?

6 Respostas

rbcunha

brg:
Pessoal estou me familiarizando com o MVC mas tem algo que eu tenho dúvida.
Por exemplo a página inicial de um site qualquer que exiba as notícias já na index.jsp (por exemplo)
como eu chamaria os dados do banco?

Tenha em mente que a JSP (camada View) serve apenas para exibir/formatar as informação. Então neste caso antes de entrar na página de notícias (JSP) deve-se passar por um Servlet que irá obter estas nóticias (em banco de dados, arquivo, etc) para depois ir para a JSP

brg:

Se eu quizesse fazer isto eu teria que fazer a index.jsp pular para um servlet que recupera os dados depois este reenviar para outro arquivo jsp?
algo tipo:
index.jsp->servletNoticias->main.jsp

Você poderia simplesmente fazer:

servletNoticias->main.jsp

Onde:
servletNoticias: obtém as notícias (BD, arquivos, etc) e redireciona (forward) para a JSP main.jsp
main.jsp: exibe as notícias a partir de objetos com as notícias disponibilizados pelo servlet (utilize taglibs JSTL para exibir/formatar os dados nas JSPs)

Falow!!!

felipealbuquerque

Mesmo que a JSP passe parâmetros por Query String, você deve passar por um servlet antes de ir à outra JSP. Mesmo se você quiser simplesmente abrir outra página, sem exibir parâmetros ou fazer qualquer tipo de processamento, você deve passar por um servlet.

O fluxo, portanto, é sempre página -> servlet -> página -> servlet -> ….

Um dos motivos mais simples que justificariam um fluxo como este (utilizando um controlador) é que, simplesmente, você não sabe se futuramente você pode querer fazer um processamento (buscar algo do BD, por exemplo) ou algo do gênero. Outro motivo seria a validação do fluxo de páginas (para evitar submits duplicados, por exemplo). A partir daí poderíamos justificar a utilização do servlet (controlador) com mais N argumentos…

celso.martins

brg:
obrigado pela resposta celso.
estas tags jsp eu já tinha conhecimento e faço uso delas mas não sabia (ou ainda não sei), se isso seria o mvc.

bom se valer assim eu estou trabalhando certo.
no caso de envio de formulários então iria para uma servlet e após seria entregue ao usuário outra página jsp?

por exemplo:
formulario.jsp->processaFormulario->resposta.jsp

e se eu tivesse que ter uma página com parâmetros?
por exemplo:

pagina.jsp?id=1&acao=2#32refsd

como ficaria o fluxo dos dados?

Creio que a abordagem do Felipe esteja corretíssima.

Entretanto surgiu uma dúvida em minha mente. Se eu quiser fazer como você falou. Isto é, algumas notícias na página inicial, sem precisar passar para outras páginas. A abordagem com Java Beans está correta?

brunoGama

Pessoal estou me familiarizando com o MVC mas tem algo que eu tenho dúvida.
Por exemplo a página inicial de um site qualquer que exiba as notícias já na index.jsp (por exemplo)
como eu chamaria os dados do banco?
Se eu quizesse fazer isto eu teria que fazer a index.jsp pular para um servlet que recupera os dados depois este reenviar para outro arquivo jsp?
algo tipo:

index.jsp->servletNoticias->main.jsp

brunoGama

obrigado pela resposta celso.
estas tags jsp eu já tinha conhecimento e faço uso delas mas não sabia (ou ainda não sei), se isso seria o mvc.

bom se valer assim eu estou trabalhando certo.
no caso de envio de formulários então iria para uma servlet e após seria entregue ao usuário outra página jsp?

por exemplo:
formulario.jsp->processaFormulario->resposta.jsp

e se eu tivesse que ter uma página com parâmetros?
por exemplo:

pagina.jsp?id=1&acao=2#32refsd

como ficaria o fluxo dos dados?

brunoGama

pois então; seguindo a lógica que mostrei no primeiro tópico talvez minha idéia não estaria totalmente errada.
visto que o primeiro documento mostrado em um servidor httpd seria o index.* este passaria para servlet e assim entao um main.jsp (por exemplo)

porém estes forwards todos não ficariam meio chatos na visão do usuário?

Criado 9 de novembro de 2007
Ultima resposta 9 de nov. de 2007
Respostas 6
Participantes 4