Servlets... quando?

9 respostas
guscoppi

Até hoje desenvolvi somente aplicações em ASP e estou aos poucos aprendendo JSP…
Quando vi Servlets tentei fazer uma analogia com as DLL’s conversando com as paginas ASP… mas não sei ao certo se isso está certo…

Alguém poderia me dar um exemplo prático de uma boa utilidade para servlets?
Não precisa mostrar a implementação… só a analise da funcionalidade e uma explicação…
Obrigado

9 Respostas

maxguzenski

Nao tenho certeza, pois nao programo muito em ASP
mas acredito que o servlet executa o mesmo papel da DLL do ASP…
sei-la

assim ,se voce quer fazer um bom projeto em Java (JSP/Servlets)
utiliza os JSP apenas para MOSTRAR OS DADOS, deixe o servlet controlar todo o resto (buscar no banco, regras de negocio, e tal)

de uma olhada na documentacao do Struts:
http://jakarta.apache.org/struts

pode te ajudar . t+

obs.: pergunda: pq tem um monte de gente migrandode ASP/VB pra java ??? algum problema com .NET? :slight_smile: hehe t+

guscoppi

hmm… deixa eu pensar um pouco… portabilidade… o Visual Studio .NET é “um pouco” caro…
hehehehe
fora que não se sabe oque se pode esperar da cópia de outra linguagem…

fenrir

Não creio que seja uma boa analogia essa! :slight_smile:

Pelos meus conhecimentos de DLL’s, elas servem para armazenar funções. São como uma biblioteca que um programa consulta. Um servlet não é isso. Pelos padrões MVC, você sempre vai acabar passando por um servlet no decorrer de toda a lógica de acesso a uma página.

A DLL você explicitamente chama de dentro de uma página ASP. A menos que o ASP tenha mudado tanto assim nos últimos tempos… :lol:

rarondini

Realmente não e uma boa analogia.

As DLL’s, juntamente com o MTS (monitor de transação da M$) foi uma tentativa de desenvolvimento em 3 camadas de forma que pudesse ser distribuido… (percebam, tentativa)…
Neste caso, a ideia eh que a DLL encapsula-se a logica de negocio e acesso a dados…
Assim, a grosso modo, o ASP não possui uma camada de controller, isso e feito dentro das paginas .ASP.

No caso do JSP/Servlet, o servlet É o controller.

guscoppi

ok… estou quase pegando a ideia da coisa…
já pude perceber que a DLL com o ASP não é uma boa analogia… e que a regra de funcionamento de ambos são diferentes…
mas alguém pode me dar um exemplo de aplicação prática de um servlet?
vamos supor em um cadastro de usuário… onde seria interessante eu utilizar servlets? ou em um portal?

N

Uma opção de aplicação do servlet nesse caso.

O servlet poderia executar os seguintes passos:

1 - Receber a solicitação HTTP, recebendo os parâmetros de forma simples (mais fácil que ASP) e adequada;

2 - Validar a solicitação (baseado em usuário e perfil, por exemplo);

3- Criar um evento baseado na solicitação;

4- Disparar esse evento, ou direcioná-lo para alguma classe que trate o evento;

5- Coletar o resultado obtido;

6- Direcionar a chamada para um JSP que irá exibir o resultado da solicitação HTTP.

Esse seria o papel típico do que chamamos “Controller” na arquitetura J2EE, uma aplicação típica de servlet’s.

O Servlet é bastante poderoso, uma das aplicações que eu acho bem interessantes é a exibição de conteúdo binário.

Por exemplo, se você quer exibir uma imagem que está em seu banco de dados, você pode colocar uma url na sua página do tipo:

<img src="pathtomyservlet?idimagem=x">

De outra forma, como fazer um link para uma imagem dentro do banco de dados ? :wink:

Da mesma forma, você poderia retornar em formato binário (com o devido mime type atribuído) arquivos .doc, .pdf, .gif, .html (até), etc.

guscoppi

Acho que to entrando no espírito…
me corrijam se eu estiver errado… de acordo com o exemplo que vc deu acima… eu posso imaginar uma tela de login?
O usuario informa o usuário e senha… o servelt faz a validação se o usuário possui acesso… que tipo de acesso… etc… e depois disso o redireciona para a tela que lhe convir.

to quase lá?

N

Perfeito, você acertou.

Essa é uma visão correta de aplicação de servlets, e a situação onde tem sido mais aplicado. Observando que existe todo um potencial dos servlet’s para manipular request’s e response’s HTTP’s.

O servlet pode tanto direcionar a requisição para outro recurso responder (outro servlet, um jsp) como pode ele mesmo responder a requisição gerando como resposta: HTML, XML, conteúdo binário (como no exemplo citado anteriormente), etc.

Para fazer uma analogia, no ASP quem é responsável por manipular as requisições ? Somente as páginas ASP!? Em J2EE/Java o servlet é um dos responsáveis pela requisição, outro responsável pode ser um JSP.

No ASP (quando programado utilizando objetos COM/COM+/MTS), você instancia Classes existentes nas suas DLL’s. No J2EE/Java você instancia classes Java.

Para conhecer mais, dá uma olhada no Tutorial de Web Services da SUN no site java.sun.com, siga os links de J2EE.

Boa sorte no seu aprendizado.

ozielneto

Java - MS
JavaServlet - CGI ISAPI
JavaBean - COM/MTS
EJB - COM+/MTS
DAO - ADO
JSP - ASP

Criado 10 de junho de 2003
Ultima resposta 15 de jun. de 2003
Respostas 9
Participantes 6