• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Servlets e jsp
 

Servlets e jsp

on

  • 1,381 views

Introdução e visão geral de algumas características.

Introdução e visão geral de algumas características.

Statistics

Views

Total Views
1,381
Views on SlideShare
1,381
Embed Views
0

Actions

Likes
0
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Servlets e jsp Servlets e jsp Presentation Transcript

    • Servlets e JSPIntrodução e visão geral de algumas características
    • Servidor de aplicação• Um servidor de aplicação implementa todas as especificações do Java EE (grande conjunto de especificações) e tem o papel de servir sua aplicação para auxilia-la com serviços de infraestrutura;• JBoss;• Glassfish.
    • Servlet Container• O Servlet Container é um servidor que suporta algumas funcionalidades como as Servlet, o JSP¹, JSTL² e JSF³ e não a implementação do Java EE por completo;• Apache Tomcat;• Jetty (usado no Google App Engine) 1 - JavaServer Pages; 2 - JavaServer Pages Standard Tag Library; 3 - JavaServer Faces
    • Servlets A servlet is a Java programming language class used toextend the capabilities of servers that host applicationsaccessed by means of a request-response programming model.Although servlets can respond to any type of request, they arecommonly used to extend the applications hosted by webservers. For such applications, Java Servlet technology definesHTTP-specific servlet classes. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
    • Servlets The javax.servlet and javax.servlet.http packages provideinterfaces and classes for writing servlets. All servlets mustimplement the Servlet interface, which defines lifecyclemethods. When implementing a generic service, you can use orextend the GenericServlet class provided with the Java ServletAPI. The HttpServlet class provides methods, such as doGet anddoPost, for handling HTTP-specific services. http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html
    • Servlets Servlets são classes Java, desenvolvidas de acordo com umaestrutura bem definida que, quando instaladas e configuradasem um servidor que implemente um Servlet Container, podemtratar requisições recebida de clientes web (browsers). JSP, Servlets e J2EE - Temple, André; Mello, Rodrigo; Calegari, Danival; Schiezaro, Maurício. (GNULicense)
    • Servlets Uma servlet é um componente no lado do servidor. Ela podeser usada para estender a funcionalidade de qualquer servidorcompatível com Java, mas normalmente as servlets são usadaspara escrever aplicativos Web em um servidor Web. [...]. Comfreqüência elas são usadas para criar páginas da Web que nãosão estáticas. Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law,Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
    • Servlets• O nome “servlet” vem da ideia de um pequeno servidor cujo objetivo é receber chamadas HTTP, processá-las e devolver uma resposta ao cliente;• Ao receber uma requisição, um Servlet pode capturar os parâmetros dessa requisição, efetuar qualquer processamento inerente a uma classe Java e devolver uma página HTML;• Os servlets normalmente utilizam o protocolo HTTP, apesar de não serem restritos a ele;
    • Servlets• Diversas requisições podem ser feitas ao mesmo Servlet ao mesmo tempo em um único servidor, por isso ela é mais rápida que um programa CGI, que não permitia isso;• Servlets ficam na memória entre requisições, não precisa ser reinstanciada;• em CGI, cada cliente é representado por um processo; com servlets, cada cliente é representado por uma linha de execução.
    • Servlets• É importante perceber que sua Servlet será instanciada uma única vez pelo container e esse objeto será usado para atender todas requisições de todos os clientes em threads separadas; é isso que traz melhorias em relação aos CGI, que disparavam diversos processos;
    • Visão geral: Servlets• Interface Servlet: define métodos que todos os servlets devem implementar;• Classe abstrata GenericServlet: Define um servlet genérico, independe de protocolo específico;• Classe abstrata HttpServlet: Provê uma classe abstrata a ser implementada para criar um servlet HTTP, adequado para um Web site;
    • Servlet - exemplopublic class Welcome extends HttpServlet { protected void service( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { PrintWriter out = response.getWriter(); String name = request.getParameter(“name”); out.println(“<html>”); out.println(“body”); out.println(“Welcome ” + name + “!!!”); out.println(“</body>”); out.println(“</html>”) }}
    • Servlets - ciclo de vidahttp://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html
    • Servlets - ciclo de vida• Os métodos init() e destroy(), quando reescritos, são obrigados a chamar o super.init() e super.destroy();• Supondo que um desses métodos execute alguma tarefa fundamental em sua classe pai, esquecer de chamar o super pode lhe causar problemas!!!
    • Servlets - exemplopublic class Welcome extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); log(“Beginning the Servlet ...”); } public void destroy() { super.destroy(); log(“... finishing the Servlet.”) } protected void service( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { ... }}
    • Servlets - HTTP O método service() aceita todos os métodos HTTP, portantotemos que especificar qual iremos utilizar através dos seguintesmétodos: void doGet( HttpServletRequest request, HttpServletResponse response ); void doPost( HttpServletRequest request, HttpServletResponse response ); Além de GET e POST o protocolo HTTP possui ainda mais 6 métodos: PUT, DELETE, HEAD, TRACE,CONNECT e OPTIONS; Os mais conhecidos são o GET e POST pois são os únicos que HTML 4 suporta. http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServlet.html
    • Servlets - mapeamento As servlets devem ser mapeadas no arquivo web.xml paraque sua aplicação saiba como localizá-la ... <servlet> <servlet-name>welcome</servlet-name> <servlet-class>br.inpe.cptec.servlet.Welcome</servlet-class> </servlet> <servlet-mapping> <servlet-name>welcome</servlet-name> <url-pattern>/</utl-pattern> </servlet-mapping>
    • Servlets - mapeamento ... ou à partir da versão 3.0 da API de Servlets, lançadaem Dezembro de 2009 com o Java EE 6, não é maisnecessário configurar as Servlets no web.xml, pode-seapenas usar a anotação @WebServlet: @WebServlet(name=“welcome”, urlPatterns={“/”, “/welcome”, “/oi”}) public class Welcome extends HttpServlet { ... }
    • JavaServer Pages JavaServer Pages is a Sun Microsystems specification forcombining Java with HTML to provide dynamic content for webpages. [...] JSP is more convenient to write than HTTP servletsbecause they allow you to embed Java code directly into yourHTML pages. JSP enables you to separate the dynamic content of a Webpage from its presentation. http://docs.oracle.com/cd/E13222_01/wls/docs70//jsp/intro.html
    • JavaServer Pages Uma JSP é apenas outra servlet e, assim como as servletsHTTP, uma JSP é um componente web no lado do servidor quepode ser usado para gerar páginas da Web dinâmica. A diferença fundamental entre servlets e JSPs é: •As servlets geram código HTML de código Java; •As JSPs incorporam código Java em código HTML estático. Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law,Debbie, Longshaw, Andy; Roxburgh, Peter. Pearson Education, São Paulo, 2003.
    • JavaServer Pages• Criado para contornar limitações no desenvolvimento com Servlets;• Permite que a criação do HTML dinâmico não se misture com a lógica da aplicação em si;• Estrutura do arquivo jsp é baseada no HTML;• Permite que se escreva código Java no arquivo, para que possamos adicionar comportamento dinâmico em nossa página, como condicionais (if), loops (while);
    • JavaServer Pages• Todo scriptlet (script + sufixo let, de pequeno) deve ser escrito entre as tags <% %>;• Para declarar uma variável é simples, basta fazer: <% String message = “Welcome!”; %>• Todo arquivo JSP possui uma variável chamada out, do tipo JspWriter, que permite imprimir para o response através do método println():• <% out.println( message ); %>
    • JavaServer Pages• Além da variável out, existem outras que estão implícitas nas nossas páginas JSP;• Existe ainda outra possibilidade para imprimir o conteúdo da nossa variável através do seguinte atalho: <% =message %>• Comentários em páginas JSP devem ser feitos da seguinte maneira:• <%-- Comentário em JSP --%>
    • JavaServer Pages No JSP existe um elemento chamado diretiva; as diretivas sãousadas para definir informações sobre sua página para otradutor, elas não produzem saída HTML: <%@ diretiva [ atributo=“valor” ] %> Dentre as diretivas existentes uma delas é a include; você ausa para inserir o conteúdo de outro arquivo JSP. O arquivoincluído pode conter tags HTML e/ou JSP. <%@ include file=”header.jsp”%>
    • JavaServer Pages Há também a diretiva page, ou seja, uma configuraçãoespecífica de uma página. Elas são usadas para definirpropriedades dependentes da página: <%@ page import=“br.inpe.cptec.dao.”%> O atributo import permite que seja especificado qual opacote a ser importado. Para diversos pacotes basta separá-lospor vírgula. <%@ page import=“java.util.*, br.inpe.cptec.dao.*” %>
    • JavaServer Pages Outra e também muito importante é a diretiva taglib. Asbibliotecas de tags (taglibs) estendem ainda mais a filosofia dasJSPs, para que seja possível escrever a maioria das páginas Websem usar código Java: <%@taglib uri=“/demo” prefix=“demo” %>
    • Taglibs• As taglibs foram desenvolvidas pela Sun para estender as funcionalidades da Expression Language;• Basear nosso código na EL e taglibs permite que tenhamos um código complexo porém limpo, pois não temos código Java no arquivo JSP e o resultado é similar à um HTML;• A maioria das publicações dedica um capitulo à parte para esse assunto;• É importante também se estudar sobre JavaBeans, para se aprofundar o entendimento de como a Expression Language funciona.
    • JavaServer Pages - funcionamento• Arquivos JSP não são compilados nos editores;• Arquivos JSP são transformados em uma Servlet por um compilador JSP (o Tomcat contém um compilador embutido);• Esse compilador pode gerar um código Java que então é compilado para gerar bytecode diretamente para a Servlet;• Então, somente durante a execução de uma página JSP, quando ele é transformado em uma servlet, que seu código Java é compilado e necessita de classes do driver que são procuradas no diretório lib.
    • JSP - ciclo de vidahttp://edn.embarcadero.com/article/26911
    • Referências• http://www.inf.ufsc.br/~bosco/downloads/livro-jsp-servlets-j2ee.pdf• http://www.devmedia.com.br/fundamentos-de-servlets/3573• http://www.cse.iitb.ac.in/dbms/Data/Courses/DBIS/Software/servlets/servlet_tutorial.html• http://docs.oracle.com/javaee/6/tutorial/doc/bnafe.html• http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzamy %2F50%2Fprogram%2Fservlife.htm• http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html• http://edn.embarcadero.com/article/26911• Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em 21 dias. Bond, Martin; Haywood, Dan; Law, Debbie; Longshw, Andy; Roxburgh, Peter. Editora Pearson Education, 2003.• FJ-21 Java para desenvolvimento web. Caelum. http://www.caelum.com.br/download/caelum- java-web-fj21.pdf