programação web aula 12 - java web software · javajava web software servlets jspmvc...
Post on 15-Nov-2018
231 Views
Preview:
TRANSCRIPT
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
top related