Página de boas-vindas Welcome.jsp
Quando o usuário insere a senha correta, switch.jsp controla a página JSP para direcionar a página de boas-vindas Welcome.jsp. Nesta seção, desenvolvemos a página Welcome.jsp. Como o Welcome.jsp precisa usar uma biblioteca de tags de terceiros, você precisa fazer algumas configurações no JBuilder para introduzir essa biblioteca de tags antes de desenvolver o Welcome.jsp.
Configure bibliotecas de tags de terceiros no JBuilder
A organização de código aberto Apache fornece muitas bibliotecas de tags úteis. A página de boas-vindas welcome.jsp precisa usar uma biblioteca de tags de data e hora do Apache. Você pode usar esta biblioteca de tags para fornecer várias exibições de hora em JSP. /2009-07/02/jakarta-taglibs-datetime-1.0.1.zip.
A biblioteca de tags geralmente inclui dois arquivos, um é o arquivo JAR do pacote de classes e o outro é o arquivo de descrição de tags com a extensão .tld. Após descompactar o arquivo compactado baixado, colocamos os arquivos taglibs-datetime.jar e taglibs-datetime.tld no diretório <project directory>/datetimeTag.
Para usar uma biblioteca de tags de terceiros em um projeto, você deve configurar a biblioteca de tags no JBuilder antecipadamente e referenciá-la no projeto. A configuração de bibliotecas de tags é semelhante à configuração de bibliotecas de classes e também é feita por meio da caixa de diálogo Configurar Bibliotecas. A biblioteca de classes e a biblioteca de tags do JBuilder estão listadas na árvore à esquerda na caixa de diálogo Configurar Bibliotecas. A biblioteca de classes é exibida como. ícone, enquanto a biblioteca de tags aparece como ícone. Em seguida, configuramos a biblioteca de tags datetime no JBuilder.
1. Caixa de diálogo Ferramentas->Configurar->Bibliotecas->Configurar Bibliotecas.
Clique no botão Adicionar... no canto inferior esquerdo da caixa de diálogo Configurar Bibliotecas para abrir a caixa de diálogo Assistente de Nova Biblioteca, conforme mostrado abaixo:
Figura 17 Caixa de diálogo Assistente de Nova Biblioteca |
Dê um nome a esta biblioteca em Nome: datetimeTag e pressione OK para retornar à caixa de diálogo Configurar Bibliotecas.
2. Especifique o arquivo da biblioteca de tags.
Depois de retornar à caixa de diálogo Configurar Bibliotecas, o nó datetimeTag aparece na árvore à esquerda Como nenhum arquivo de biblioteca de classes foi especificado para ele, ele é exibido em vermelho visível, diferentemente de outros nós. Clique em datetimeTag e alterne a página de configuração Configurações da Biblioteca. para Framework Na página da aba, conforme mostrado abaixo:
Figura 18 Mudar para Framework |
Selecione a opção Biblioteca de tags JSP definida pelo usuário na caixa suspensa Estrutura, clique no botão Adicionar... na parte inferior direita da página da guia e a caixa de diálogo Definir nova biblioteca de tags aparecerá, conforme mostrado na figura abaixo:
Figura 19 Arquivo de descrição especificando a biblioteca de tags |
Na caixa de diálogo Definir nova biblioteca de tags, clique no botão... após o arquivo TLD e navegue até o arquivo <diretório do projeto>/datetimeTag/taglibs-datetime.tld. Após a confirmação, o JBuilder preenche automaticamente as configurações restantes. não há necessidade de alterar essas configurações de reabastecimento automático do JBuilder. Entre eles, Prefix especifica um prefixo de referência para esta biblioteca de tags. Clique no botão OK para retornar à caixa de diálogo Configurar Bibliotecas. O nó datetimeTag é exibido em cor normal, conforme mostrado abaixo:
Figura 20 O efeito após configurar corretamente a biblioteca de tags |
Clique no botão OK na caixa de diálogo Configurar Bibliotecas para concluir a configuração da biblioteca de tags de data e hora.
3. Faça referência a esta biblioteca de tags recém-configurada no projeto atual.
Projeto->Propriedades do Projeto...->Caminhos->Alternar para a guia Bibliotecas Necessárias->Clique no botão Adicionar... para selecionar o datetimeTag da biblioteca de classes do JBuilder. Após a configuração bem-sucedida, a caixa de diálogo Propriedades do Projeto terá a seguinte aparência:
Figura 21 Biblioteca de referência do projeto |
Crie uma página JSP de boas-vindas
1. Arquivo->Novo…->Web->Clique duas vezes no ícone JSP para iniciar o Assistente de Criação JSP, especifique o nome do arquivo JSP como bem-vindo e clique em Avançar para prosseguir para a próxima etapa.
2. Consulte a biblioteca de tags datetimeTag na página Welcome.jsp.
Na etapa 2 do assistente, você pode selecionar várias bibliotecas de tags no JBuilder. A biblioteca de tags datetimeTag que configuramos na seção anterior também aparece na lista Bibliotecas de tags, conforme mostrado na figura a seguir:
Figura 22 Biblioteca de tags de referência |
Expanda a tag datetime e verifique taglibs-datetime e clique em Avançar para ir para a próxima etapa.
3. Faça referência ao objeto userBean colocado no domínio da sessão em switch.jsp.
Figura 23 Faz referência ao userBean colocado na sessão em switch.jsp |
Clique em Incluir Bean... para selecionar a classe bookstore.User, especifique o nome do Bean como ses_userBean na coluna ID e selecione o escopo da sessão na coluna Escopo. ses_userBean é o nome especificado para userBean em switch.jsp. O contêiner da Web procurará o objeto na sessão com base neste nome. Se não conseguir encontrá-lo, ele criará o objeto bookstore.User porque Welcome.jsp é chamado após a troca. .jsp. Portanto, a menos que a sessão expire, o objeto userBean poderá ser encontrado.
Clique em Concluir diretamente para criar o arquivo Welcome.jsp. O código é o seguinte:
Listagem de código 15 página de boas-vindas welcome.jsp
1. <%@ page contentType="text/html; charset=GBK" %> 2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt" %> 3.<html> 4. <cabeça> 5. <título> 6. bem-vindo 7. </título> 8. </cabeça> 9. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User" /> 10.<jsp:setProperty name="ses_userBean" propriedade="*" /> 11. <corpo bgcolor="#ffffff"> 12. <h1> 13. JSP gerado pelo JBuilder 14.</h1> 15. </corpo> 16.</html> |
A biblioteca de tags referenciada na etapa 2 do assistente é definida de acordo com o código de declaração da biblioteca de tags referenciada na linha 2. O Bean definido na etapa 3 corresponde da 9ª à 10ª linhas do código. Como não há necessidade de preencher o valor do Bean em Welcome.jsp, o código da linha 10 deve ser removido manualmente.
A seguir, referenciamos a biblioteca de tags datetime no arquivo Welcome.jsp e a usamos para gerar uma string de formato de hora atual. Abra o arquivo Welcome.jsp e mude para a página de visualização Fonte. Primeiro limpe o código gerado pelo JBuilder em <body></body>, digite "<dt:" em <body></body>, o JBuilder usará a função TagInsight para exibir todos os itens de tags disponíveis nesta biblioteca de tags, como segue Conforme mostrado na figura:
Figura 24 Usando TagInsight para entrar na biblioteca de tags
TagInsight pode ser usado para inserir facilmente as tags disponíveis na biblioteca de tags, o que acelera bastante a entrada do código na biblioteca de tags e garante a correção. Em Welcome.jsp, usamos a biblioteca de tags para obter uma string de hora formatada atual. Além disso, também obtemos o nome do usuário por meio de ses_userBean. O código final de Welcome.jsp é assim:
Listagem de código 16 welcome.jsp faz referência à biblioteca de tags e ao objeto Session
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp" %> 2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt"%> 3.<html> 4. <cabeça> 5. <título>bem-vindo</título> 6. </cabeça> 7. <jsp:useBean id="ses_userBean" scope="session" class="bookstore.User"/> 8. <body bgcolor="#ffffff">Você é 9. <%=ses_userBean.getUserName()%>, bem-vindo ao fazer login. <br> 10. A hora atual é<dt:format pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:format> 11. <br>Clique<a href="quit.jsp">aqui</a>para sair do sistema 12. </corpo> 13.</html> |
Além disso, o JBuilder copiou o arquivo de descrição da biblioteca de tags datetime taglibs-datetime.tld para WEB-INF e adulterou o arquivo web.xml para declarar o endereço de taglibs-datetime.tld:
Listagem de código 17 Declarando o arquivo de descrição da tag em web.xml
1. <?xml version="1.0" encoding="UTF-8"?> 2.… 3. <aplicativo web> 4. <taglib> 5. <taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri> 6. <localização taglib>/WEB-INF/taglibs-datetime.tld</localização taglib> 7. </taglib> 8. </web-app> |
Conforme mostrado acima, nas linhas 4 a 7 do web.xml, o JBuilder adiciona automaticamente o arquivo de descrição da biblioteca de tags datetime para que o contêiner da web possa encontrar corretamente as informações necessárias.
Ao compilar o projeto para gerar um diretório Web, o JBuilder copiará o arquivo JAR taglibs-datetime.jar da biblioteca de tags datetime para o diretório WEB-INF/lib.
Quando o usuário fizer login com sucesso, ele será redirecionado para a página Welcome.jsp. O efeito da página é mostrado abaixo:
Figura 25 página de efeito Welcome.jsp |
Quando o usuário clicar no link "aqui", ele será vinculado ao quit.jsp. A página quit.jsp é responsável por limpar a sessão. Após limpar a sessão, ela desvinculará os objetos referenciados na sessão e liberará os recursos.
página de processamento de saída quit.jsp
Como o protocolo HTTP funciona de maneira solicitação/resposta, quando o cliente sai do sistema, ele precisa enviar ativamente uma solicitação ao servidor Web para notificar o servidor Web para destruir a sessão a tempo, caso contrário, o servidor Web apenas esperará. até que a sessão expire antes de destruí-la.
Usamos quit.jsp para lidar com a saída do usuário do sistema. quit.jsp é responsável por desconectar a sessão e liberar recursos em tempo hábil.
·Saia da sessão.
·Feche a janela do navegador.
O código é o seguinte:
1. <%@ page contentType="text/html; charset=GBK" %> 2,<% 3.sessão.invalidate(); 4. %> 5. <linguagem de script = "javaScript" > 6. window.opener = nulo; 7. janela.close(); 8.</roteiro> |
A linha 3 é responsável por sair da sessão. Os objetos originalmente colocados na sessão serão desvinculados e aguardarão a coleta de lixo para liberar recursos. Para este exemplo, há um objeto userBean chamado ses_userBean na sessão (ele é colocado na sessão em switch.jsp). Após chamar session.invalidate(), o userBean é desvinculado da sessão e seu método valueUnbound() será. ser acionado e aguardar a coleta de lixo.
As linhas 5 a 8 são um programa script JavaScript responsável por fechar a janela. Se a página web não for aberta através de um programa script (window.open()), o objeto window.opener deve ser definido antes de chamar window.close(). script para fechar a janela. É nulo, conforme mostrado na linha 6, caso contrário, o navegador exibirá uma caixa de diálogo confirmando o fechamento. O autor descobriu que esse problema tem incomodado muitos programadores da Web, então apontei isso em particular.
Experiência prática:
Quando o usuário sai do sistema, a sessão precisa ser desconectada, caso contrário, o objeto da sessão não será limpo até que a sessão expire no servidor. Suponha que o tempo máximo de inatividade de uma sessão seja 30 minutos (o tempo padrão). Se os objetos da sessão não forem limpos manualmente, os recursos do sistema ocupados por esses objetos não serão liberados até que 30 minutos tenham passado após o usuário sair do sistema. |