Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Java Server Pages

O que é necessário para começar? Desenvolvida pela Sun para desenvolvimento de aplicações Web, a partir de componentes Java que executem no lado servidor.

O que é necessário para começar? Desenvolvida pela Sun para desenvolvimento de aplicações Web, a partir de componentes Java que executem no lado servidor.

 

Este pequeno artigo apresenta a tecnologias JSP e Servlets, sendo o suficiente para o desenvolvimento de sites dinâmicos de razoável complexidade. Se a aplicação exigir uma grande robustez e escalabilidade deve se considerar o uso em conjunto de outras tecnologias da plataforma J2EE.

 

Tecnologias

Para tirar um bom proveito do JSP é preciso entender a linguagem ou ter um conhecimento básico em Java. Isso porque, a parte lógica do JSP envolve Java Beans, Objetos JDBC, Enterprise Java Beans(EJB) entre outros componentes que interagem com a plataforma Java. Portanto, para aqueles que pretendem desenvolver uma aplicação mais sofisticada que entendam um pouco mais de programação em Java.

 

O ideal é que se conheça um pouco de HTML (Hyper Text Markup Language). É comum em grandes aplicações que o programador JSP e o Designer sejam pessoas diferentes. Portanto, será usado pouquíssimas tags HTML, porque a preocupação está voltada para a parte das aplicações e não para a parte visual.

 

JSP

Um acrônimo para Java Server Pages e consiste numa linguagem de script baseada

em java para criação de sites com conteúdos dinâmicos.

 

Inicialmente as páginas na Web eram apenas páginas estáticas, isto é, seu conteúdo não variava a cada solicitação conforme algum parâmetro. Com a sofisticação dos serviços disponibilizados via Web, surgiu a necessidade de disponibilizar informações com natureza dinâmica (lista de preços atualizados, compras on-line, etc). Isso exigiu que o servidor web fizesse algum processamento adicional da solicitação a fim de gerar uma resposta personalizada.

 

Quando uma página JSP é requisitada pelo cliente através de um Browser, esta página é executada pelo servidor, e a partir daí será gerada uma página HTML que será enviada de volta ao browser do cliente. A figura abaixo ilustra esse funcionamento:

 

rcpjspndcfig01.jpg 

 

Servlets

Servlets são programas simples feitos em Java os quais rodam em um Servlet Container. Um Recipiente (Container) Servlet é como um servidor Web que trata requisições do usuário e gera respostas. Recipiente Servlet e diferente de Servidor Web porque ele é feito somente para Servlets e não para outros arquivos (como .html etc). O Recipiente Servlet é responsável por manter o ciclo de vida do Servlet. Pode ser usado sozinho (standalone) ou conjugado com um servidor Web. Exemplo de Recipiente Servlet é o Tomcat, e de servidor Web o Apache.

 

Servlets são na verdade simples classes Java as quais necessitam implementar

a interface javax.servlet.Servlet. Esta interface contém cinco métodos que precisam ser implementados. Na maioria das vezes você não precisa implementar esta interface. Por que? Porque o pacote javax.servlet já provê duas classes que implementam esta interface i.e. GenericServlet e HttpServlet.

 

Então tudo que você precisa fazer é estender uma dessas classes e sobrescrever o método que você precisa para seu Servlet. GenericServlet é uma classe muito simples que somente implementa a interface javax.servlet.Servlet e fornece apenas funcionalidades básicas. Enquanto HttpServlet é uma classe mais útil que fornece métodos para trabalhar com o protocolo HTTP. Assim se seu servlet usa o protocolo HTTP (o que ocorrerá na maioria dos casos) então ele deveria estender a classe javax.servlet.http.HttpServlet para construir um servlet e isto ´e o que faremos na nossa aplicação. Servlets uma vez iniciados são mantidos na memória. Então toda requisição que chega, vai para o Servlet na memória e este gera uma resposta.

Esta característica de “manter na memória” faz com que usar Java Servlets seja um método extremamente rápido e eficiente para construir aplicações Web.

 

A figura abaixo ilustra o funcionamento de um relacionamento entre um servlet, container e um servidor web.

 

rcpjspndcfig02.jpg 

 

O exemplo mostra o uso de um objeto HttpSession para armazenar as informações digitadas em um formulário.

 

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class SessionTeste extends HttpServlet

{

  public void doGet(HttpServletRequest req, HttpServletResponse resp)

     throws IOException, ServletException

  {

     resp.setContentType("text/html");

 

   PrintWriter out = resp.getWriter();

   out.println("<html><head>");

   out.println("<title>Teste de Sessao</title>");

   out.println("</head>");

   out.println("<body>");

   out.println("<h3>Teste de Sessao</h3>");

   HttpSession session = req.getSession(true);

   out.println("Identificador: " + session.getld());

   out.println("<br>");

   out.println("Data: ");

   out.println(new Date(session.getCreationTime()) + "<br>");

   out.println("Ultimo acesso: ");

   out.println(new Date(session.getLastAccessedTime()));

 

     String nomedado = req.getParameter("nomedado");

     String valordado = req.getParameter("valordado");

     if (nomedado != null && valordado != null)

     {

        session.setAttribute(nomedado, valordado);

     }

    

   out.println("<P>");

   out.println("Dados da Sessao:" + "<br>");

   Enumeration valueNames = session.getAttributeNames();

    

     while (valueNames.hasMoreElements())

     {

         String name = (String)valueNames.nextElement();

         String value = (String) session.getAttribute(name);

         out.println(name + "=" + value+ "<br>");

     }

 

   out.println("<P>");

   out.println("<form action=\"SessionTeste\" method=POST>");

   out.println("Nome: <input type=text size=20 name=nomedado><br>");

   out.println("Valor: <input type=text size=20 name=valordado><br>");

   out.println("<input type=submit>");

   out.println("</form>");

   out.println("</body></html>");

     }

 

  public void doPost(HttpServletRequest req, HttpServletResponse resp)

        throws IOException, ServletException

     {

        doGet(req, resp);

     }}

 

Para controlar a sessão é necessário obter um objeto HttpSession por meio do método getSession() do objeto HttpServletRequest. Opcionalmente, o método getSession() recebe como argumento um valor booleano que indica se é para criar o objeto HttpSession se ele não existir (argumento true) ou se é para retorna null caso ele não exista (argumento false). Para se associar um objeto ou informação à sessão usa-se o método setAttribute() do objeto HttpSession, passando para o método um String e um objeto que será identificado pelo String. Note que o método aceita qualquer objeto e, portanto, qualquer objeto pode ser associado à sessão. Os objetos associados a uma sessão são recuperados com o uso método getAttribute() do objeto HttpSesion, que recebe como argumento o nome associado ao objeto. Para se obter uma enumeração dos nomes associados à sessão usa-se o método getAttributeNames() do objeto HttpSession.

 

Segue abaixo o resultado da execução do exemplo.



rcpjspndcfig03.jpg

 





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Rafael Cardoso Pereira

Rafael Cardoso Pereira (rafael_nadador@yahoo.com.br) Profissional com experiência em pesquisa e desenvolvimento da tecnologia de informação. Conhecimentos em padrões de projeto, qualidade de software (modelo CMMI) e métodos ágeis. Desenvolvedor, utilizando tecnologias Java e JSP. Atualmente estou cu...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
8   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03