SlideShare uma empresa Scribd logo
Servlets / JSP Glaucio Scheibel - GUJava/SC v2.0
O que são Servlets? Objetos da tecnologia Java que extendem a funcionalidade de um servidor HTTP. Comparável aos NSAPI da Netscape, ISAPI da Microsoft, ou Módulos do Apache. Independente de plataforma. Independente de servidor.
Por que Servlets? HTTP é o transporte universal da internet através de  Firewalls  restritívos. Navegadores, aplicações web, aplicações Java, e outros programas podem usar HTTP. Qualquer tipo de dado pode ser transmitido via HTTP, não só HTML.
Servlets são leves! Servlets podem rodar no mesmo processo servidor que o HTTP Server. Pode suportar maiores cargas de usuários com menos recursos de máquina. Servlets pode ser carregado de qualquer lugar. Sistema local de arquivos. WebSite remoto.
Arquiteturalmente mais rápido que CGI Servlets não criam um novo processo a cada requisição. Servlets são carregados e ficam prontos para receberem as requisições. O mesmo servlet pode atenter muitas requisições simultâneas.
Fácil de desenvolver É programação Java. Sem ponteiros como no código C. Não há dialetos diferentes para diferentes bancos de dados. Orientado à objetos. Servlets adequam-se à práticas de reutilização de código.
Muitas bibliotecas Java disponíveis A inacreditável funcionalidade das bibliotecas da plataforma Java faz do Servlet a mais flexível camada intermediária. Servlets usam as vantagens de JDBC, EJB, JMS, JavaMail, JavaIDL, RMI, etc. E claro, qualquer tecnologia de terceiros feita em Java é facilmente acessível.
Write Once, Run Anywhere! Servlets podem rodar em qualquer plataforma onde o runtime Java existe. O mesmo servlet pode rodar em qualquer servidor HTTP, desde Apache até Zeus. Desenvolva numa pequena máquina e execute no maior dos servidores.
Servidores que suportam Servlets Apache Tomcat ATG Dynamo Application Server Bajie Server BEA WebLogic Server Borland AppServer Brokat Server Technologies Caucho Technology Resin EasyThings Web Server ExOffice Intalio Gefion WebServer HP Bluestone Total-e-Server IBM WebSphere Application Server 4.0 IONA iPortal Application Server iPlanet Web Server Lutris Technologies Enhydra Macromedia Jrun
Servidores que suportam Servlets Jetty New Atlanta ServletExec Novocode NetForge Oracle 9i JServer Orion Application Server ParaChat Server 3.0 Pramati Server Secant Technologies ModelMethods Enterprise Server Servertec Internet Server Silverstream Application Server Sybase EAServer Tagtraum Industries jo! Trifork Enterprise Application Server vqSoft vqServer W3C Jigsaw Zeus Technology Web Server
Netcraft Survey (abr/02) Active sites: Apache: 64,38% Microsoft: 27,15% iPlanet: 1,71% Zeus: 1,12% Top developers: Apache: 56,38% Microsoft: 31,96% Zeus: 2,26% iPlanet: 2,21%
Um Servlet simples public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“text/plain”); PrintWriter out = response.GetWriter(); out.println(“Hello World!”); } }
Servlets Servlets tem um ciclo de vida bem definido. Administrado pelo container. Carregado sob demanda. Descarregado a qualquer momento. Pode ser mapeada para qualquer parte da URL. Multi-Thread
Request's em ação
Ciclo de vida do Servlet Um servlet é instanciado pelo container. É inicializado através do método  init . O método  service  pode ser chamado de 0 a n vezes. Pode ser limpo através do método  destroy,  que é invocado  quando o container o remove.
Anatomia de um Request Um cliente envia um request a um servidor. O request é resolvido para um servlet pelo container. O método service do servlet é chamado com um objeto Request e um Response. O servlet devolve um response preenchido para o request.
Um Request
O objeto Request Encapsula todas as informações do cliente. Acesso ao cabeçalho da requisição. Acesso a um  InputStream  ou  Reader . Acesso a informações CGI-like. Acesso aos dados do formulário.
Métodos frequentes do Request Enumeration getParameterNames(); String getParameter(String paramName); String getRemoteAddr(); String getRequestURI(); Enumeration getHeaderNames(); String getHeader(String headerName); HttpSession getSession(); Cookie[] getCookies();
O objeto Response Encapsula toda comunicação para o cliente. Acesso aos cabeçalhos da resposta. Acesso a um  OutputStream  ou  Writer . Acesso para setar  cookies . Métodos para enviar redirecionamentos, páginas de erro, etc
Métodos frequentes do Response ServletOutputStream getOuputStream(); PrintWriter getWriter(); void setContentType(String type); void setContentLength(int length); void addCookie(Cookie cookie); void setStatus(int statusCode); void sendError(int statusCode); Void sendRedirect(String url);
Rastreamento de sessão Sessões são uma série de requisições feitas por um cliente durante um período de tempo. Muitas maneiras foram feitas pelos desenvolvedores. Todas complicadas para trabalhar. Camada unificada para trabalhar com sessões incluida na API Servlet.
Sessões em ação public void doGet( HttpServletRequest request, HttpServletResopnse response) throws ServletException, IOException { HttpSession session = request. GetSession(); Cart cart = (Cart) session.getValue(cart); // Lógica do carrinho AddItem(inventoryNumber, quantity); }
Não somente HTML Muitos programadores utilizam servlet's para HTML, mas... Servlets podem gerar imagens usando AWT e Java2D. Servlets podem gerar dados customizados. Servlets podem enviar objetos serializados. Servlets podem usar XML.
Geração de imagem public void doGet(HttpServletRequest request, HttpServletResopnse response) throws ServletException, IOException { image = this.buildImage(request); response.setContentType(“image/gif”); ServletOutputStream out = response.GetOutputStream(); GifEncoder encoder = new GifEncoder(image, out); encoder.encode(); }
JSP Java Server Pages Template para um servlet. Permite programar através da saída. Inclusão de código Java em fontes HTML, XML, etc... Ao primeiro acesso, é gerado um servlet que representa cada JSP.
Página JSP <html> <jsp:useBean id=&quot;clock&quot; class=”calendar.JspCalendar”/> <ul> <li>Day of month: <%=clock.GetDayOfMonth()%> <li>Year: <%=clock.getYear()%> </ul> </html>
Elementos JSP Texto estático Diretivas padrões Elementos de script Ações padrões Tag's customizadas
Diretivas <%@directive attribute=”value” ...%> page  language  extends  imports  buffer  errorPage  isThreadSafe
Diretivas include tag library uri: semântica prefix: colisão de nomes Bibliotecas conhecidas Mecanismo portável do JSP 1.1
Elementos de Script Declarações <%! int i; %> Scriptlets <% myBean.setSomething(foo); %> Expressões <%= myBean.getResult()%>
Objetos implícitos Objetos definidos automaticamente: request response session application out (buferizado)
Tags padrões useBean setProperty getProperty include forward plugin
Tags customizadas Encasula funcionalidades Facilita: manutenção uso de ferramentas Provê semânticas portáveis
Tags customizadas - Exemplo <connection id=”con1” ref=”foo.xml”  userid=”<%=request.userid%>”/>  <query id=”q1” connection=”con1”> SELECT account, balance... </query> <ul> <foreach row=”row” in=”q1”> <li> The balance for <%=row.account%> is <%=row.balance%> </foreach> </ul>
Tags customizadas Portáveis Tags aninhadas Corpo pode ter elementos de script Simples de usar Simples de definir
Scripts, Beans e Tags Complementares. Estilos diferentes. Scripts: cola. Beans: componentes genéricos da plataforma Java. Tags: interface adicional para uso nas páginas.
Obrigado! Perguntas?

Mais conteúdo relacionado

PDF
Introdução à Servlets e JSP
PDF
Servlets e JSP
PPT
Servlets e jsp
PDF
Curso de JSP
PDF
Introdução ao Desenvolvimento de aplicações WEB com JSP
PPTX
Aula 1 - curso java web - JSP Java Server Page
PDF
Java Web 3 - Servlets e JSP 1
Introdução à Servlets e JSP
Servlets e JSP
Servlets e jsp
Curso de JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
Aula 1 - curso java web - JSP Java Server Page
Java Web 3 - Servlets e JSP 1

Mais procurados (20)

PDF
Java Web 1 Introducao
PDF
Servlet jsp tomcat 8
PPT
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
PDF
Java Web - MVC básico com JSP e Servlets
PDF
Java Web 2 - Ferramentas e configuração
PDF
Java Web 5 - JSP, Expression Language e Taglibs
PPT
Desenvolvimento web em java com JSP e Servlets
PPT
Java Web Dev Introdução
PPTX
JSPs Etiquetas
PDF
Engenharia da Computação: Resumo servlet + jsp br galo
PPT
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
PPT
Tomcat e Aplicações Web
PDF
WebService Restful em Java
PDF
Java Web 4 - Servlets e JSP 2
PDF
Curso Java (Parte 8) Web Service REST
PPTX
JSP - Java Serves Pages
PPTX
JSPs Introdução Parte 1
PDF
Curso de Java (Parte 7) Web Application
PDF
Curso de Java (Parte 6) Introdução a Front-end
PDF
REST Web Services com Java
Java Web 1 Introducao
Servlet jsp tomcat 8
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Java Web - MVC básico com JSP e Servlets
Java Web 2 - Ferramentas e configuração
Java Web 5 - JSP, Expression Language e Taglibs
Desenvolvimento web em java com JSP e Servlets
Java Web Dev Introdução
JSPs Etiquetas
Engenharia da Computação: Resumo servlet + jsp br galo
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Tomcat e Aplicações Web
WebService Restful em Java
Java Web 4 - Servlets e JSP 2
Curso Java (Parte 8) Web Service REST
JSP - Java Serves Pages
JSPs Introdução Parte 1
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 6) Introdução a Front-end
REST Web Services com Java
Anúncio

Semelhante a Servlets e JSP (20)

PDF
Curso de WebServlets (Java EE 7)
PDF
Apostilava Java EE 5 - 2007
ODP
servlet-introducao
PPT
Web Sphere
PDF
02 - Fundamentos de Servlets
PPTX
Rest workshop
PPT
introdução a ajax
PPT
Servlets E Applet
PPTX
Uma Introdução a ASP.NET Web API
PDF
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
PDF
GUJavaSC - Combinando AngularJS com Java EE
PDF
QCon 2015 - Combinando AngularJS com Java EE
PPT
Curso ASP.Net - Módulo 1
PDF
PDF
Curso de Servlets
PPT
ASP.NET AJAX
PDF
Introdução ao desenvolvimento web com Java
PPS
Comet - ReverseAjax com DWR - Resumo
PDF
Apache Wicket - Desenvolvimento WEB orientado a componentes
PPTX
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Curso de WebServlets (Java EE 7)
Apostilava Java EE 5 - 2007
servlet-introducao
Web Sphere
02 - Fundamentos de Servlets
Rest workshop
introdução a ajax
Servlets E Applet
Uma Introdução a ASP.NET Web API
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
Curso ASP.Net - Módulo 1
Curso de Servlets
ASP.NET AJAX
Introdução ao desenvolvimento web com Java
Comet - ReverseAjax com DWR - Resumo
Apache Wicket - Desenvolvimento WEB orientado a componentes
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Anúncio

Mais de Glaucio Scheibel (12)

PPTX
PPTX
Bancos de Dados Orientados a Objetos
PPTX
Modelos NoSQL e a Persistência Poliglota
PPTX
SQALE Software Quality Assessment based on Lifecycle Expectations
ODP
Design Patterns
ODP
Apache e Java
ODP
ODP
Programação Paralela - Threads
ODP
Programação Defensiva
ODP
Tecnologia Java
ODP
Java e Software Livre
ODP
Batalhas com Robocode
Bancos de Dados Orientados a Objetos
Modelos NoSQL e a Persistência Poliglota
SQALE Software Quality Assessment based on Lifecycle Expectations
Design Patterns
Apache e Java
Programação Paralela - Threads
Programação Defensiva
Tecnologia Java
Java e Software Livre
Batalhas com Robocode

Último (20)

PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula sobre banco de dados com firebase db
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula 18 - Manipulacao De Arquivos python
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula sobre banco de dados com firebase db
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
COBITxITIL-Entenda as diferença em uso governança TI

Servlets e JSP

  • 1. Servlets / JSP Glaucio Scheibel - GUJava/SC v2.0
  • 2. O que são Servlets? Objetos da tecnologia Java que extendem a funcionalidade de um servidor HTTP. Comparável aos NSAPI da Netscape, ISAPI da Microsoft, ou Módulos do Apache. Independente de plataforma. Independente de servidor.
  • 3. Por que Servlets? HTTP é o transporte universal da internet através de Firewalls restritívos. Navegadores, aplicações web, aplicações Java, e outros programas podem usar HTTP. Qualquer tipo de dado pode ser transmitido via HTTP, não só HTML.
  • 4. Servlets são leves! Servlets podem rodar no mesmo processo servidor que o HTTP Server. Pode suportar maiores cargas de usuários com menos recursos de máquina. Servlets pode ser carregado de qualquer lugar. Sistema local de arquivos. WebSite remoto.
  • 5. Arquiteturalmente mais rápido que CGI Servlets não criam um novo processo a cada requisição. Servlets são carregados e ficam prontos para receberem as requisições. O mesmo servlet pode atenter muitas requisições simultâneas.
  • 6. Fácil de desenvolver É programação Java. Sem ponteiros como no código C. Não há dialetos diferentes para diferentes bancos de dados. Orientado à objetos. Servlets adequam-se à práticas de reutilização de código.
  • 7. Muitas bibliotecas Java disponíveis A inacreditável funcionalidade das bibliotecas da plataforma Java faz do Servlet a mais flexível camada intermediária. Servlets usam as vantagens de JDBC, EJB, JMS, JavaMail, JavaIDL, RMI, etc. E claro, qualquer tecnologia de terceiros feita em Java é facilmente acessível.
  • 8. Write Once, Run Anywhere! Servlets podem rodar em qualquer plataforma onde o runtime Java existe. O mesmo servlet pode rodar em qualquer servidor HTTP, desde Apache até Zeus. Desenvolva numa pequena máquina e execute no maior dos servidores.
  • 9. Servidores que suportam Servlets Apache Tomcat ATG Dynamo Application Server Bajie Server BEA WebLogic Server Borland AppServer Brokat Server Technologies Caucho Technology Resin EasyThings Web Server ExOffice Intalio Gefion WebServer HP Bluestone Total-e-Server IBM WebSphere Application Server 4.0 IONA iPortal Application Server iPlanet Web Server Lutris Technologies Enhydra Macromedia Jrun
  • 10. Servidores que suportam Servlets Jetty New Atlanta ServletExec Novocode NetForge Oracle 9i JServer Orion Application Server ParaChat Server 3.0 Pramati Server Secant Technologies ModelMethods Enterprise Server Servertec Internet Server Silverstream Application Server Sybase EAServer Tagtraum Industries jo! Trifork Enterprise Application Server vqSoft vqServer W3C Jigsaw Zeus Technology Web Server
  • 11. Netcraft Survey (abr/02) Active sites: Apache: 64,38% Microsoft: 27,15% iPlanet: 1,71% Zeus: 1,12% Top developers: Apache: 56,38% Microsoft: 31,96% Zeus: 2,26% iPlanet: 2,21%
  • 12. Um Servlet simples public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“text/plain”); PrintWriter out = response.GetWriter(); out.println(“Hello World!”); } }
  • 13. Servlets Servlets tem um ciclo de vida bem definido. Administrado pelo container. Carregado sob demanda. Descarregado a qualquer momento. Pode ser mapeada para qualquer parte da URL. Multi-Thread
  • 15. Ciclo de vida do Servlet Um servlet é instanciado pelo container. É inicializado através do método init . O método service pode ser chamado de 0 a n vezes. Pode ser limpo através do método destroy, que é invocado quando o container o remove.
  • 16. Anatomia de um Request Um cliente envia um request a um servidor. O request é resolvido para um servlet pelo container. O método service do servlet é chamado com um objeto Request e um Response. O servlet devolve um response preenchido para o request.
  • 18. O objeto Request Encapsula todas as informações do cliente. Acesso ao cabeçalho da requisição. Acesso a um InputStream ou Reader . Acesso a informações CGI-like. Acesso aos dados do formulário.
  • 19. Métodos frequentes do Request Enumeration getParameterNames(); String getParameter(String paramName); String getRemoteAddr(); String getRequestURI(); Enumeration getHeaderNames(); String getHeader(String headerName); HttpSession getSession(); Cookie[] getCookies();
  • 20. O objeto Response Encapsula toda comunicação para o cliente. Acesso aos cabeçalhos da resposta. Acesso a um OutputStream ou Writer . Acesso para setar cookies . Métodos para enviar redirecionamentos, páginas de erro, etc
  • 21. Métodos frequentes do Response ServletOutputStream getOuputStream(); PrintWriter getWriter(); void setContentType(String type); void setContentLength(int length); void addCookie(Cookie cookie); void setStatus(int statusCode); void sendError(int statusCode); Void sendRedirect(String url);
  • 22. Rastreamento de sessão Sessões são uma série de requisições feitas por um cliente durante um período de tempo. Muitas maneiras foram feitas pelos desenvolvedores. Todas complicadas para trabalhar. Camada unificada para trabalhar com sessões incluida na API Servlet.
  • 23. Sessões em ação public void doGet( HttpServletRequest request, HttpServletResopnse response) throws ServletException, IOException { HttpSession session = request. GetSession(); Cart cart = (Cart) session.getValue(cart); // Lógica do carrinho AddItem(inventoryNumber, quantity); }
  • 24. Não somente HTML Muitos programadores utilizam servlet's para HTML, mas... Servlets podem gerar imagens usando AWT e Java2D. Servlets podem gerar dados customizados. Servlets podem enviar objetos serializados. Servlets podem usar XML.
  • 25. Geração de imagem public void doGet(HttpServletRequest request, HttpServletResopnse response) throws ServletException, IOException { image = this.buildImage(request); response.setContentType(“image/gif”); ServletOutputStream out = response.GetOutputStream(); GifEncoder encoder = new GifEncoder(image, out); encoder.encode(); }
  • 26. JSP Java Server Pages Template para um servlet. Permite programar através da saída. Inclusão de código Java em fontes HTML, XML, etc... Ao primeiro acesso, é gerado um servlet que representa cada JSP.
  • 27. Página JSP <html> <jsp:useBean id=&quot;clock&quot; class=”calendar.JspCalendar”/> <ul> <li>Day of month: <%=clock.GetDayOfMonth()%> <li>Year: <%=clock.getYear()%> </ul> </html>
  • 28. Elementos JSP Texto estático Diretivas padrões Elementos de script Ações padrões Tag's customizadas
  • 29. Diretivas <%@directive attribute=”value” ...%> page language extends imports buffer errorPage isThreadSafe
  • 30. Diretivas include tag library uri: semântica prefix: colisão de nomes Bibliotecas conhecidas Mecanismo portável do JSP 1.1
  • 31. Elementos de Script Declarações <%! int i; %> Scriptlets <% myBean.setSomething(foo); %> Expressões <%= myBean.getResult()%>
  • 32. Objetos implícitos Objetos definidos automaticamente: request response session application out (buferizado)
  • 33. Tags padrões useBean setProperty getProperty include forward plugin
  • 34. Tags customizadas Encasula funcionalidades Facilita: manutenção uso de ferramentas Provê semânticas portáveis
  • 35. Tags customizadas - Exemplo <connection id=”con1” ref=”foo.xml” userid=”<%=request.userid%>”/> <query id=”q1” connection=”con1”> SELECT account, balance... </query> <ul> <foreach row=”row” in=”q1”> <li> The balance for <%=row.account%> is <%=row.balance%> </foreach> </ul>
  • 36. Tags customizadas Portáveis Tags aninhadas Corpo pode ter elementos de script Simples de usar Simples de definir
  • 37. Scripts, Beans e Tags Complementares. Estilos diferentes. Scripts: cola. Beans: componentes genéricos da plataforma Java. Tags: interface adicional para uso nas páginas.