Loading

Module 1: Desenvolvimento de Aplicações Web com Servlets & JSP

Nota de Estudos
Study Reminders
Support
Text Version

Criação e Implantação de Servlets

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Olá. Bem-vindo à semana 8 de introdução ao desenvolvimento moderno de aplicativos.
O que aprendemos até agora?1. Discutimos logins, mas não os implementamos ainda.2. Temos servlets que nos permitem manter uma sessão e da última vez, vimos como os cookiespodem ser usados tanto como identificação quanto como mecanismo para manter a continuidade entre as telasque nos dá um uso que é sessões e outro uso que é logins.
Objetivo desta semana:1. Como a visão é colocada em conjunto.2. Como os servlets são criados e implementados.
Nessa sessão, estamos agora chegando muito perto de finalmente ter um aplicativo web completo que ébastante semelhante a um aplicativo GUI, mas que terá vários usuários e outras instalações.
Servlets: Uma Via disciplinada Para Construir Apps WebA criação e a implementação de servlets é uma forma disciplinada de um problema geral que nósmencionamos repetidamente durante este curso que é, como manter e implementar um app web comovocê vai em frente.
Interessante observação sobre a maioria dos aplicativos da Web de vida realAviso de que os apps web nunca têm por baixo os tempos, eles sempre parecem estar funcionando, o método quevamos ver em uso com servlets é uma das peças chave na obtenção desse tipo dealways-on tipo de desenvolvimento. Com aplicativos web você quase nunca está ciente de que
qualquer coisa como uma atualização aconteceu. As coisas que vamos ver hoje é uma das principaispeças em como os Apps Web alcanam tal continuidade de comportamento.
NOTA: Isso é muito diferente de como os sistemas de desktop costumavam ser, onde as pessoas tinham que criarnovas versões de programas e baixá-las. No entanto isso é melhor agora à medida que conseguimos operaratualizações do sistema e as atualizações embora tenhamos um pouco mais de conhecimento sobre ele no caso dedesktops e também em algum grau no caso de mobiles.
(Consulte O Tempo De Deslizamento: 03:05)
Objetivo da sessão:1. Veja os nossos próprios servlets ’ implementação2. Dê os primeiros passos em direção a necessidade de template e JSP-um determinado modeloidioma
Demos:Primeiro servlet: HelloServlet (última vez que olhamos para HelloServlets e FormServlets como eles vieramno Tomcat.)
Desta vez vamos analisar o que é preciso para fazer o nosso próprio, o que é um tanto mais envolvente.Construímos o nosso próprio HelloServlet, utilizaremos os padrões que aprendemos enquanto criamos o HelloServletpara criar um servlet Form, finalmente criar um servlet JSP.
PARTE-I1. Entenda a estrutura do servlet.2. Entenda problemas ocasionais que podem surgir enquanto criam servlets.(Consulte o Tempo de Slide: 04:52)
Revisão rápida do que vimos para aplicativos Apache, os layouts, mapeamentos de URL ecompare que com como ele muda para servlets.● Acesse o controle xampp-> inicie o Apache● inicie o Tomcat● Abra http://localhost: 8080 para Run Tomcat no navegador.● Início do app Manager(Consulte o tempo de slide: 05:21)
(Consulte O Tempo De Deslizamento: 06:25)
OBSERVAÇÃO: o aplicativo Fairshare consiste em fairshare.html e fair share.sh, além de um código de fairshare.java. Código Java geralmente não é visível para o front-end, o front-end só mostra arquivos HTML massabemos que há 2 componentes para ele, um deles é fairshare.sh e, em seguida, os arquivoshtmlInteractive.java e arquivos de classe que residem em cgi-bin. Este é um sistema desorganizado emque alguns arquivos estão em um só lugar, alguns arquivos estão em outro lugar. Torna-se difícil gerenciare assim, a primeira coisa que os servlets fazem é, eles impõem uma estrutura maior sobre o que constitui um aplicativoe como implantamos ele.
(Consulte O Tempo De Deslizamento: 07:22)
Uma aplicação web em servlets é bem estruturada usando o formato WAR (Web ARchive).
Estrutura de um aplicativo Hello básicos Em servlets.O aplicativo Hello tem uma estrutura de diretórios.1. Há um diretório de alto nível chamado nptel.2. Dentro do nptel, criamos um diretório chamado “ hello ”3. Inside “ hello ”, há “ helloservlet.war ” e dois diretórios chamados “ src ” e “ WEB –INF ”.4. src contará com fontes.5. WEB-INF tem 2 diretórios: classes e lib e um arquivo chamado web.xml.6. web.xml faz mapeamento de URL: serve como uma descrição geral de como um arquivo Java e um tipo de arquivo de tipofront-end, se houver, é colocado junto e disponibili-lo para o servidor.(Consulte o Tempo do slide: 08:17)
Basicamente, WEB-INF contará o que for necessário para que o aplicativo web funcione,o que inclui estas 3 peças.(Consulte o Tempo do slide: 09:12)
Hello Servlet1. src contém NPTEL
2. dentro do diretório nptel temos HelloServlet.É assim que como vimos na última vez que a solicitação GET é mapeada em código Java e o objeto de resposta do servlete o objeto de resposta do servlet contêm todos os dados que desejarmos.
Aqui há algo interessante para lembrá-lo da última vez, um é que na resposta configuramos um tipo de conteúdoe em uma resposta, criamos um printWriter e escrevemos para o printWriter todo o texto HTMLpara que ele saia em um único fluxo é todo visto neste arquivo.src é onde o código java começa, e pacotes java estão todos estruturados dentro src.(Consulte o Tempo do slide: 10:51)
A estrutura de código em web.xml é por e grande padrão. Eles não mudaram por um tempo muitoe a menos que você esteja fazendo algo especial, o código pode ser apenas reaprovetado. Então, só sevocê tiver um programa que valida o xml irá alguns desses tipos de detalhes iniciar o acasalamento.Caso contrário, na maioria das partes, a maioria dos usos de xml são apenas baseados em nomes de tags.
Lembre-se: Components de um aplicativo web para o caso Apache de qualquer maneira incluia HTML, um arquivo shelle um programa de java.
Em servlets acabamos de ter um programa Java. Não há necessidade do arquivo shell porque isso éexatamente o que o container de servlet que é Tomcat faz.
Um contêiner de servlet executa o equivalente a um programa completo de linha de comandos mas sem terpara lidar com detalhes de linhas de comando. Em vez disso, apenas utilizamos um programa HTTP padrão quesegue uma interface padrão chamada API do servlet.1. Há uma classe HelloServlet.2. Então, nptel.HelloServlet aqui, aliás, esta é uma classe Java completa (assim todos os detalhes decapitalização etc. matéria). Então, nptel / HelloServletlet.java terá que estar presente.(Consulte o Tempo de Slide: 14:06)
(Consulte O Tempo De Deslizamento: 14:20)
1.2. Dentro WEB-INF, você tem aulas e nas aulas há nptel seguido por HelloServletclasse. Por isso, dentro WEB-INF, as classes contêm a estrutura de diretórios geral para o programa Java distribuído.3. lib neste caso está vazio.4. lib é destinada para jarros e outras bibliotecas e classes padrão.(Consulte o Tempo do slide: 14:58)
Mapeamento de URLAcima da figura mostra nptel.HelloServlet. Então, isso diz ao sistema que, neste servlet mapeando ourl HelloServletlet.html corresponde à classe nptel / HelloServlet. Assim, quando você visitar esta url,Tomcat interpretará sua visita como buscar a classe e executar o método whichever que você tiverobteve. (Neste caso apenas o método GET direto). Por isso, no Apache quando uma URL é mencionadageralmente, o mapeamento da URL corresponde diretamente ao sistema de arquivos começando com a raizda hierarquia do documento geral. Isso torna o gerenciamento de aplicativos simples muito fácil mas como os aplicativosficam mais complicados fica difícil rastrear 2 ou 3 arquivos em diferentes diretórios, então um padrão de url é mencionado e dizemos que há um nome de servlet e o sistemacuida de mapear essas 2 coisas para nós.
Então, é por isso que a estrutura se torna importante. Veremos como isso se reflete no web.xmlenquanto o aprendizado JSP. (Consulte O Tempo De Deslizamento: 16:52)
COMO ISSO FUNCIONA NA PRÁTICA.● Executar “ javac srcnptelHelloServletlet.java ” como mostrado acima a compilação o arquivo java● Ir para src nptel● Nós vemos HelloServlet.class. Se o compilar for sucessful, então um arquivo .class será criado.● Copie apenas a classe para WEB-INF/classes e sob o diretório nptel para obter a estrutura de diretórios necessária.● Bundle up usando este comando “ jar cvf helloservlet.war WEB-INF ”. (Como mostrado na figuraacima)(jar é um programa que irá coletar todos os arquivos que estão sob WEB-INF e colocá-losdentro do helloservlet.war. )
À medida que as implementações ficam mais complicadas outros diretórios como construção e dist, mas os diretórios do coreque são necessários são src e WEB-INF.(Consulte o Tempo de Slide: 18:36)
Se você quiser ver o que um arquivo de guerra é como, acesse: appsnptelhellohelloServlet.war.
São apenas arquivos zip. Então, você pode obter um programa como 7-zip e olhar para dentro desta coisa. Então,porque acabamos de zibelar um diretório, toda essa estrutura está presente como está e o que obtemos.Contamos meta informações e arquivo manifesto criado pelo programa zip. Implemente todo o arquivo WARsem se preocupar em colocar manualmente esse arquivo neste diretório, aquele arquivo nesse diretórioe assim por diante.(Consulte o Tempo do slide: 19:29)
1. Vá para o gerenciador de aplicativos Tomcat2. Existem 2 maneiras de implementar esses sistemas.3. Crie um arquivo WAR. (Desde que a criamos, ou seja, helloservlet.war)4. Implementa-o. Obtemos uma nova linha e o nosso app helloservlet está pronto para usar.
Erro: Status HTTP “ 404-Not Found ”.
(Diz “ o servidor de origem não encontrou uma representação atual do recurso de destino ou não estádisposto a divulgar um que existe ”).
Isto significa URL HelloServlet como é, não funciona realmente.
web.xml diz /helloservlet.html deve mapear para nptel.HelloServlet.Quando o gerente consegue um arquivo de guerra, se exemplos foram implementados por um arquivo chamado examples.war entãoeste é usado como um diretório inicial da URL. Se quisermos vários aplicativos, eles devem estar emvárias partes dos subdiretórios na URL. Mas aqui nós acabamos de dar slash no início.
Então o que o gestor faz é, leva o nome do arquivo de guerra como base e estende a sua url emrelação com o arquivo war.(Consulte o Tempo do slide: 22:55)
Existe alguma maneira de, por exemplo, obter facilmente helloservlet te servir a url?Abra web.xml, e além da url (helloservlet.html), já que de qualquer maneira é a parte final deo nome que importa, coloque uma url adicional que é simplesmente “ / ”.(veja código na figura acima)Desta vez você verá que a implementação é um assunto muito mais simples.(Consulte o Tempo do slide: 23:51)
Mudamos a configuração e o web.xml so re-package (como mostrado no prompt de comandoacima) para criar um novo arquivo WAR. Então, esse novo arquivo WAR tem o nosso novo XML.(Consulte o Tempo do slide: 24:11)
● Pare o aplicativo (clicando em Parar na linha correspondente a helloservlet).Ele retorna um “ contexto path ” qual é o nome do servlet porque ele dá um contexto.● Un-deploy o aplicativo clicando no botão Undeploy da linha.● Então, neste ponto este arquivo se foi do sistema.(Consulte o Tempo do slide: 24:37)
Vá para xampp / Tomcat / webapps. Nós costumamos ter o nosso olá mas não está mais lá.
Re-Deployment:Deploy novamente como feito anteriormente, helloservlet.war aparece em webapps novamente
(Consulte O Tempo De Deslizamento: 25:54)
(Consulte O Tempo De Deslizamento: 27:28)
Os arquivos de guerra preservam a estrutura WEB-INF porque aqueles são apenas arquivos jar e jar como vimossão simplesmente arquivos zip que você pode abrir com programas como 7-zip.
Tomcat manager faz start-stop, deploy e undeploy.Lá isn ’ t muito copiando para fazer. Emcasos complicados há ferramentas como ANT. ANT é uma ferramenta de construção razoavelmente comum. Existemmais recentes que vieram em torno de qual deploy, un deploy etc. e em um único shot produzem a construção, copie, crie a estrutura WEB-INF, envolva-a em uma guerra e implemente, o que simplifica umgrande negócio da nossa vida.
(Consulte O Tempo De Deslizamento: 29:10)
Mas a parte interessante que eu gostaria de destacar é que há um lugar explícito onde tiramosurls e mapei-los.
Integração Contínua e ImplantaçãoEm aplicativos normais, a integração contínua e o desenvolvimento contínuo acontecem: Diferentespartes de uma equipe se unem e à medida que produzem recursos, o website fica atualizado(às vezes quantos a cada meia hora).
Não somente todos os trabalhos em equipe são reunidos, toda a implantação é concluídamuito rápido, essa ideia é chamada de integração contínua e implementação contínua. Fazer issotrabalhar uma etapa é implementação simples.
Para a integração contínua há algo muito mais difícil, que é uma boa suíte de testes, quepermite que você faça pequenas alterações, testes, para garantir que as coisas não foram quebradas e vá em frentee implemente.
Então, o CICD como é chamado é um tópico maior mas pode ser motivado pela questão: Por que épossível reimplantar on-the-fly?(Consulte o Tempo do slide: 30:26)
Fomos para o gerente, não implementado e recolonizados e sem qualquer alteração, por assim dizer, até o momentocomo os usuários estão preocupados, nós fomos apenas capazes de atualizar logo de imediato.
Observação: Já que somos os que implementamos e utilizamos, em helloservlet acima, não há nenhum casoonde um pedido chega ao mesmo tempo em que o aplicativo é desimplementado.
Mas se tivéssemos desimplantado esse aplicativo, então simplesmente não podemos ir até ele e se tentarmos rodar o arquivoao mesmo tempo, ele não encontra o arquivo. Então, nesse sentido, não há uma implementação mágica contínua deno nosso exemplo, mas se você quiser fazer, mantenha o arquivo antigo como ele é, antes de fazer a nova alteração. (Nós dizemos que uma determinada porcentagem de pedidos só deve ir para o novo arquivo.) Então,você implementa simultaneamente o arquivo antigo e o novo arquivo sob um novo nome. Eventualmente, à medida que vocêadquire mais confiança no novo arquivo liberado, aumente a porcentagem de tráfego que vai parao novo arquivo e alternando lentamente. No caso de algo dar errado, no máximo algumas pessoas sãoafetadas e você costuma descobrir que algo está errado muito rapidamente. O web.xml simples quenós vimos não permite fazer esse tipo de alterações.
Mas há maneiras de fazê-lo e se obtemos tempo neste curso, veremos como é que isso éalcançado, geralmente é alcançado através de coisas como front de Apache termina e o whatnot, assim podemos
não entrar nessas intrincadas desta vez. Mas é útil conhecer o princípio geral de como essestipos de, você sabe, sites de sites frescos evergreen funcionam. Então, vimos a estrutura geral.(Consulte o Slide Time: 32:57)
Quando desenvolvemos nosso próximo app, replicamos a estrutura geral.Eg: Crie um diretório chamado “ guiforms ” semelhante ao “ hello ”, inside guiforms você segue a mesma estruturacomo “ hello ”. (Consulte O Tempo De Deslizamento: 34:25)
Especialmente se você usa IDEs como eclipse que são capazes de gerar suas estruturas padrãoe populá-las, o que geralmente é como a maioria das pessoas faz esses tipos de coisas quando elas são,elas estão fazendo novos materiais. No entanto, objetivo do curso é ir a cada passo para que você tenha um entendimento completo.
São exemplos de uma maneira particular de organização de sistemas web. Seria apenas como fácil deusar alguma outra ferramenta, por exemplo, nodeJS ou elixir, mas a única coisa que seria diferente éas ferramentas subjacentes que são usadas para colocar esses sistemas juntos, o fluxo fundamental e osprincípios fundamentais que estão dentro dos sistemas web não se altera.(Consulte o Tempo do slide: 36:14)
● Temos a estrutura básica de servlets.● Next, produziremos apps de forma simples com vários botões.● Então veremos por que algo chamado linguagens de template são usadas e todas as nossas peças emesse ponto estará no lugar.● Entendemos o fluxo de controle de aplicações web, entendemos como produzira visualização.● Entendemos como criar o modelo.● Temos visto exemplos de como o banco de dados é usado● Nós também temos o nosso primeiro vislumbre de como os cookies e sessões funcionam.
O app web completo sintetiza todas essas peças.