Usar servlets ao inves de scriplets

4 respostas
fabim

Ola pessoal…

axo q com esse topico aqui acabo com minhas duvidas de uma vez por todas…

bom, eu tenho uma JSP onde nela eu tenho todo o codigo q gera o
relatorio… usando um bean “fichaCriminal”, com scope “session”… esse codigo fica todo em “scriplet” (axo q e esse o nome que se da ao codigo java que fica na jsp, entre <% %>)…

entao agora eu quero tirar isso da minha jsp, e jogar numa servlet… criei um servlet aqui e joguei toda a operação de criação do relatorio dentro dele, o .jsp so vai ficar responsavel por exibir mesmo o pdf…

agora vem minha pergunta…

como eu associo o meu .jsp com essa servlet?

existe uma instrução no .jsp pra xamar a servlet?
ou eu associo a servlet com o jsp e qdo eu xamar o jsp ele vai xamar o servlet tb?

me desculpem pelas perguntas super basicas… entendendo os conceitos de como funcioanm jsp + servlets eu paro de amolar vcs =)

vlw

4 Respostas

K

Fabio,

voce tem que ver como sua JSP vai invocar sua servlet…
se for por qualquer componente (que nao seja link ou javascript), vc coloca na sua jsp um form e no action dele, vc aponta para sua servlet…
ou seja,

&lt;html&gt;
&lt;body&gt;
 &lt;form name  = "nomeForm" action = "/servlet" method="post";
 &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

Pronto. Sua jsp já vai apontar para o servlet.

Se você quiser fazer o contrário agora, voce pode usar a classe RequestDispatcher para disparar para uma jsp qualquer.

RequestDispatcher rd = request.getRequestDispatcher("/pagina.jsp");

    rd.forward(request, response);

Prontinho. Sua servlet já vai disparar para uma jsp.

Mas vale ressaltar que para isso dar certo, você precisa ter declarado sua servlet no web.xml certinho. Senão ele não dá erro porque sua servlet não vai ser localizada.

K

Fabio,

também queria dizer que trabalhar código java na jsp não é uma boa prática. Além de ser bem mais dificil a manutencao~porque não fica mto legivel.

Ao separar a logica da apresentação você já vai estar trabalhando com o conceito de MVC.

Então procura separar o designer (jsp) da lógica (servlet).
Você vai perceber que vai ser mto melhor trabalhar dessa forma, aliás “codificar” uma jsp é uma maneira de fugir o conceito de orientação a objeto por detonar o conceito de classes mal definidas cujo intuito é a reutilização de código.

fabim

hmmm… ta ficando mais claro as coisas =D

mas e aqueles metodos subscritos de httpservlet (doGet, doPost)… em q momento exatametne eles sao chamados?

e percebi tb que a assinatura desses metodos recebem 2 objetos, request e response… mas em q momento minha jsp passou esse objeto pra eles?

me confundi um poco nisso ae…

mas de cara ja percebi que e bem melhor trabalhar com servlets =)

alguem pode me explicar com mais detalhes?

K

Fabio, é o seguinte…

mas e aqueles metodos subscritos de httpservlet (doGet, doPost)... em q momento exatametne eles sao chamados?

Eles são métodos de requisição do http.
Toda vez que vc faz uma solicitação ao servidor,
sua aplicação tem que definir como essa
requisição será feita: get ou post.

Uma definição mais basica para isso, seria dizer que
doPost envia dados do usuario como por exemplo
um formulario html. E doGet requer uma representação
do recurso especificado. Ele é um dos mais usados na web.

e percebi tb que a assinatura desses metodos recebem 2 objetos,
 request e response... mas em q momento minha jsp passou
 esse objeto pra eles?

Como te disse anteriormente, uma aplicação web trabalha com requisições/resposta (request/response), ou seja, requisições vinda do usuario para o servidor. E respostas devolvida do servidor para o usuario.

No momento em que você clicou em qualquer componente da sua jsp,
isso já é considerado uma requisição…(é claro se esse componente
tiver alguma ação definida). Pode ser disparada para uma outra jsp ou
para uma servlet.

Agora vamos imaginar que vc quer fazer uma tela de cadastro para
inserir os dados no banco. Quando voce termina de preencher a tela de
cadastro, voce clica no botão gravar, certo?

Nesse momento, a servlet que será responsável por gravar isso no
banco, ela vai receber os dados enviados pela jsp e processar. Qdo isso
acontece, o objeto request está carregado e voce pode manipular ele de
acordo com a sua necessidade. Depois que o servidor processou os
dados conforme a implementação da classe, o servidor devolve uma
resposta para o usuario pela jsp…assim o objeto response que está
carregado.

Criado 7 de fevereiro de 2007
Ultima resposta 7 de fev. de 2007
Respostas 4
Participantes 2