25
Java Java Web Software Servlets JSP MVC Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 Bruno Müller Junior Departamento de Informática UFPR Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software · JavaJava Web Software Servlets JSPMVC Programação Web Aula 12 - Java Web Software BrunoMüllerJunior Departamento de Informática

Embed Size (px)

Citation preview

Java Java Web Software Servlets JSP MVC

Programação WebAula 12 - Java Web Software

Bruno Müller Junior

Departamento de InformáticaUFPR

25 de Maio de 2015

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

1 Java2 Java Web Software3 Servlets

Modelo de TrabalhoFuncionamentoAPI JavaCódigo JavaCódigo html

Exemplos de ServletsCriação de Servlets no NetbeansProjeto GreetServlet ContainersProjeto SurveyProjeto voteCounter

4 JSPModeloExemplos

ELJSTL

JavaBeansAcessoExemplo

5 MVC

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Java

Sun - 1995Linguagem OO compilada em bytecode.Máquina virtual executa bytecode.Multiplataforma (só precisa da MVJ na máquina hospeira).Projeto de uma MV que opera em navegadores (plugin).Segurança: MV não permite acesso a infos locais.Usada inicialmente só no lado cliente, porém também foiestendida para operar no servidor.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Java Web Software

Esta aula aborda as tecnologias existentes no lado do servidorusando a linguagem Java.A ferramenta utilizada para exemplificar é Netbeans.Exemplos de ferramentas: Tomcat, JBoss, etc;Foco principal: Servlets;Ferramenta utilizada para exemplos: Netbeans;

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Servlets

Servlet: objeto java executado no servidor Web que responderequisições HTML;Utilizado para gerar respostas dinâmicas às requisições dosnavegadores.normalmente instanciado quando uma requisição HTML éenviada à URL.Servlet Container ou Servlet Engine: é o dispositivo desoftware no servidor que gerencia Servlets.Ao receber uma requisição, o servidor Web verifica se é paraum servlet. Se for, despacha a req. para o Servlet Engine.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Modelo de Trabalho

Modelo de Trabalho

Figura : Programming The WWW (Robert Sebesta)

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Funcionamento

Funcionamento

1 Web server recebe uma requisição HTTP, e a examina.2 Se a requisição envolve um servlet, o Web Server passa a

requisição ao Servlet Container.3 O Container analisa qual Servlet deve ser executado, o

instancia (se necessário) e o chama.4 A chamada passa dois parâmetros: o objeto da request e o

objeto da response.5 O objeto request pode conter dados de formulário (form) e

identidade do cliente (por exemplo, cookies).6 O Servlet pode conter código para gerar dinamicamente o

documento HTML de response.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

API Java

API Java

Há uma pacote java chamado Servlet (em javax.servlet)que contém interfaces para implementar servlets. Exemplos:ServletRequest e ServletResponse.Para criar um novo Servlet é necessário estenderHttpServlet, que contém vários métodos, como por exemplodoGet, doPost, doPut, doDelete.

public classe Exemplo extends HttpServlet {protected void doGet (HttpServletRequest request,

HttpServletRequest response)throws ServletException, IOException {

response.setContentType("text/html");PrintWriter out = response.getWriter ();out.println("<html><head><title>");out.println("Exemplo Simples");out.println("</title></head><body></body></html>");

}}

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Código Java

Código Java

Código Java:

Figura : Programming The WWW (Robert Sebesta)

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Código html

Código html

Código html:

Figura : Programming The WWW (Robert Sebesta)

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Exemplos de Servlets

Exemplos de Servlets

A parte mais “complexa” da criação de um Servlet está naimplantação dele.Por exemplo, no Tomcat, bastava criar um subdiretório abaixodo diretório principal e colocar lá o código compilado doServlet.Com a criação de mais Servlet Containers (GlassFish, BEAentre outros), foram criado padrões para a implantação e daorganização dos diretórios onde:

A aplicação é empacotada em arquivos WAR (Web applicationARchive), que tem estrutura semelhante a arquivos .zipcontém descritor da implantação chamado web.xml na raiz.Por ser complexo, raramente codifica-se um Servlet sem o usode um ambiente próprio como por exemplo Eclipse e Netbeans.

Por esta razão, a criação do Servlet exemplo dos próximosslides utiliza o ambiente Netbeans.Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Criação de Servlets no Netbeans

Criação de Servlets no Netbeans

Arquivo -> Novo ProjetoJava Web -> Aplicação Web (<Próximo>)Dar nome (<Próximo>)Sem Framework <Finalizar>Novo -> Servlet <Finalizar>

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Projeto Greet

Projeto Greet

Cria página com um botão que ativa o servlet.É necessário criar dois arquivos:

1 documento html para a primeira interação (index.html);2 documento java que é o servlet (Greet.java).

Observações:1 Veja o projeto greetn: a forma de indicar o servlet a ser

executado quando o button for ativado é a seguinte:<form action="Greet" method="get">

2 Observe como a resposta é criada (response object)3 Observe os métodos doGet e doPost;

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Servlet Containers

Servlet Containers

São os programas responsáveis por responder a requisição docliente (docto html ou servlet).

Figura : Programming The WWW (Robert Sebesta)

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Projeto Survey

Projeto Survey

Usa um servlet para responder um formulário com radioinput.Aspectos a serem observados:

1 Como é a associação entre a propriedade name com o códigojava:<input type="radio" name="gender" value="female" />

gender = request.getParameter("gender");

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Projeto voteCounter

Projeto voteCounter

Mostra como utilizar cookies:Criar um cookie:newCookie=new Cookie("iVoted","true");

Especificar duração:newCookie.setMaxAge(50);

Enviar cookie:response.addCookie(newCookie);

Verificar cookies da requisição:cookies = request.getCookies();

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

JSP

Servlets misturam código HTML com código java println,por exemplo.Grande parte das organizações utiliza duas equipes: projetistasweb (markup) e programadores web (lógica do negócio).Ambos tem de trabalhar nos mesmos arquivos, gerandoproblemas previsíveis.O objetivo de JSP (Java Servlet Pages) é permitir a criação deprojetos com uma distinção clara entre markup e lógica donegócio.Em alguns casos, permite que os projetistas web contruamtoda a aplicação.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Modelo

Modelo

JSP inclui uma camada acima de servlet.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Exemplos

Exemplos

Como JSP inclui várias possibilidades de implementação, serãoapresentados vários versões para uma mesma aplicação:converter uma temperatura de Celsius para Fahrenheit:

Usando Expression Language (EL);Usando JSTL Control Action Statements;

Posteriormente a mesma aplicação será implementada usandoJavaBeans.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

EL

EL

As expressões a serem executadas são colocadas no documentode resposta (.jsp) usando o formato ${expressão EL}Projeto tempConvertEl:

index.htmltempConverterEL2.jsp

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

JSTL

JSTL

Inclui tags para executar condicionais.Úteis por exemplo para analisar se o usuário digitou umnúmero.Projeto tempConvertEl1:

index.html tem um condicional que verifica se a mensagemcontém uma requisição com dados (requisição contém POST).Atenção à inclusão e uso das tags condicionais (JSP)<%@ taglib prefix="c"

uri="http://java.sun.com/jsp/jstl/core"%>...<c:if test = "${pageContext.request.method != ’POST’}"></c:if>

Projeto MoreJSP:Usa radio, e JSTL <c:choose> (switch).

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

JavaBeans

JavaBeans

A arquitetura JavaBeans apresenta uma série de regras paraconstruir classes especiais java projetados para serem usadoscomo componentes reusáveis de software.Estes componentes são chamados beans.Há uma série de convenções rígidas. Exemplo:

é obrigatória a existência de getter e setter começando comget e set.Assim, se a bean contém um inteiro chamado celsius, entãoos nomes são getCelsius e setCelsius

Em JSP, são normalmente usados como recipientes para dadosda aplicação Web.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Acesso

Acesso

Dados armazenados em um bean é chamado propriedade;Nomes de propriedades são como variáveis em java, mascomeçam sempre com minúscula e são privadas (com métodospúblicos para acesso);o elemento JSP abaixo inclui a classe java contendo um bean:<jsp:useBean id="mybean"

class="org.mypackage.convert.Converter" />

Existem duas ações padrão para acessar um bean:<jsp:setProperty name="mybean" param="celsius" property="celsius" />

(equivalente a)<jsp:setProperty name="mybean" property="celsius" />

<jsp:getProperty name="mybean" property="celsius" />

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

Exemplo

Exemplo

projeto tempConvertBarquivo index.jsparquivo response.jsparquivo Converter.java (em Pacotes de código-fonte),atenção ao org.mypackage.convert.

Bruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software

Java Java Web Software Servlets JSP MVC

MVC

Existem basicamente três formas de criar MVC usando JSP:1 JSP = {Controlador, View}, Beans = {Model};2 Servlet = {aceitar requisições, lógica }, Beans = {manipulação

de dados}, JSP = {View};3 Servlet = {Controlador}, JSP = {View}, EJB1 = {Model}

1Enterprise Java Beans, componentes java distribuídosBruno Müller Junior Departamento de Informática UFPR

Programação Web Aula 12 - Java Web Software