Entre os muitos sites na Internet, os sites dinâmicos baseados em bancos de dados da Web são amplamente utilizados. Um site dinâmico baseado em um banco de dados de rede da Web consiste em um navegador da Web como interface do cliente, um servidor de banco de dados para armazenamento de informações e um servidor de aplicativos da Web que conecta os dois. A tecnologia CGI original para desenvolvimento de sites dinâmicos foi gradualmente substituída por miniaplicativos Java, controles ActiveX, DHTML e JavaScript à medida que a tecnologia cliente de aplicativos Web continua a se desenvolver. Essas tecnologias melhoraram muito a interface do usuário, mas quando tentaram fazer um trabalho aprofundado, começaram a encontrar problemas como incompatibilidade do navegador do cliente, servidores sobrecarregados, acesso lento e problemas de segurança. A tecnologia JSP é uma chave de ouro para resolver esses problemas. Este artigo discute principalmente algumas questões técnicas no processo de uso da tecnologia JSP para construir sites dinâmicos.
Tecnologia JSP
JSP é uma tecnologia de desenvolvimento Web baseada em Java Servlet e em todo o sistema Java. Esta tecnologia pode ser usada para construir sites dinâmicos avançados, seguros, rápidos e multiplataforma. Adicionar fragmentos de programas Java e tags JSP a arquivos HTML de páginas da web tradicionais forma uma página da web JSP. Quando o servidor Web recebe uma solicitação para acessar uma página JSP, ele primeiro executa o fragmento do programa e depois retorna o resultado da execução ao cliente em formato HTML. Os fragmentos do programa podem operar bancos de dados, redirecionar páginas da web, enviar e-mails, etc. Esta é a funcionalidade necessária para construir um site dinâmico. Todas as operações do programa são executadas no lado do servidor, e apenas os resultados são enviados ao cliente na rede, com baixíssimas exigências no navegador do cliente. Conforme mostrado na Figura 1, quando o usuário se conecta ao site JSP, o usuário solicita uma página da web, e a página JSP responde à solicitação sozinha, converte a solicitação do usuário para a página da web em uma solicitação de dados, processa a solicitação por meio de JavaBean e encapsula os dados retornados em uma página HTML para retorno aos usuários.
JSP tem muitas vantagens:
1. Escreva o programa uma vez e execute-o em qualquer lugar. Ao projetar JSP, a independência da plataforma de aplicação foi totalmente levada em consideração. Contando com a portabilidade do Java, o JSP é suportado por muitas plataformas operacionais populares e pode ser executado em servidores como Apache, NetScape e IIS.
2. Execução rápida. A página JSP só precisa ser compilada uma vez e convertida em código de bytes Java e, em seguida, reside na memória do servidor, acelerando a resposta à página JSP. Se você não considerar o tempo que leva para compilar a página JSP pela primeira vez, a velocidade de resposta do JSP é muito mais rápida que a do ASP.
3. Vantagens do Java. A tecnologia JSP usa a linguagem Java como linguagem de script. A tecnologia Java multiplataforma, madura, robusta e facilmente extensível torna o trabalho dos desenvolvedores mais fácil e simples em outros aspectos. Quando há suspeita de falha do sistema Windows, o Java pode efetivamente impedir a falha do sistema. A linguagem Java se destaca no gerenciamento de memória, fornecendo métodos para evitar vazamentos de memória. Além disso, JSP fornece um mecanismo de manipulação de eventos inesperados mais robusto para aplicativos, aproveitando ao máximo as vantagens do Java.
Dificuldades técnicas do JSP
1. Conecte-se ao banco de dados
A conexão do banco de dados é a parte mais importante de um site dinâmico. A tecnologia ODBC ou JDBC pode ser usada ao conectar-se ao banco de dados back-end. Embora ODBC seja uma opção como meio tradicional de conexão ao banco de dados, o ODBC possui as seguintes falhas fatais, tornando-o incompetente para solicitações JSP:
(1) ODBC é uma API implementada em linguagem C que chama um programa C local a partir de um programa Java. causará Traz uma série de questões semelhantes à segurança, integridade e robustez.
(2) Em segundo lugar, uma implementação completamente precisa de ODBC do código C ODBC para tradução de API Java não será satisfatória, porque não há ponteiros em Java, e ODBC usa muitos ponteiros, incluindo o ponteiro nulo extremamente sujeito a erros "void "*".
(3) Considerando a portabilidade da plataforma, o uso de ODBC no desenvolvimento de programas JSP terá efeitos negativos, tornando o código inadequado para portabilidade.
Para facilitar o transplante do programa e ao mesmo tempo ter segurança, integridade e robustez, é mais apropriado usar JDBC para conectar-se ao banco de dados. JDBC é uma API Java que pode ser usada para executar instruções SQL. Consiste em algumas classes e interfaces escritas em linguagem Java, permitindo aos desenvolvedores escrever aplicativos de banco de dados completos em linguagem Java pura. Ao usar JDBC, as instruções SQL podem ser facilmente transmitidas para praticamente qualquer banco de dados. Em outras palavras, você não precisa escrever um programa para acessar o Sybase, outro programa para acessar o Oracle e outro programa para acessar o SQL Server da Microsoft. Os programas escritos com JDBC podem transmitir automaticamente instruções SQL para o sistema de gerenciamento de banco de dados correspondente.
Quando um programa de banco de dados local usa um banco de dados como o Access da Microsoft, a ponte JDBC-ODBC desenvolvida pela Sun pode ser usada. Ao emprestar essa tecnologia, um programa JSP pode acessar um banco de dados com um driver ODBC. Isso não apenas mantém as vantagens do JDBC, mas também pode usar a fonte de dados ODBC fornecida pela Microsoft para conectar-se ao Access. Não importa o tipo de banco de dados da outra parte, desde que haja uma interface ODBC, você pode usar diretamente a ponte JDBC-ODBC para se conectar ao banco de dados sem alterar o código do programa correspondente devido a alterações no banco de dados back-end, alcançando separação perfeita entre a camada de aplicação e a camada de banco de dados. Se você precisar alterar o banco de dados back-end para MySQL, você só precisará instalar o driver MySQL na fonte de dados ODBC e poderá usar o banco de dados MySQL diretamente.
2. Ao implementar um site com componentes integrados
, devido a necessidades objetivas, a fim de distinguir facilmente os usuários da LAN local dos usuários remotos e fornecer as permissões correspondentes, o componente integrado Request pode ser usado para capturar todas as conexões com o servidor. O endereço IP do usuário é comparado e as permissões correspondentes são concedidas. Desta forma, os usuários desta rede local podem utilizar todos os recursos públicos e não públicos do site. O método existente também pode ser melhorado inserindo vários endereços IP no banco de dados e concedendo diferentes permissões a diferentes endereços IP para controlar completamente o uso dos recursos do site pelo usuário.
A manutenção do estado da sessão é um problema que os desenvolvedores de aplicações web devem enfrentar. Para saber se o usuário ainda está online, o componente Session integrado é usado. Ao fornecer a cada usuário logado uma variável Session, os recursos usados pelo usuário podem ser fechados após o usuário sair anormalmente do site, economizando assim. memória e melhorando o desempenho do servidor.
A classe Cookie também é fornecida em JSP, e seu construtor possui dois parâmetros, representando o nome e o valor do Cookie. A classe Cookie fornece vários métodos para definir os atributos do Cookie. Por exemplo, o método setMaxAge pode ser usado para definir o tempo de vida do Cookie. Se o tempo de sobrevivência for um valor negativo, significa que o navegador fecha o cookie e desaparece; se o tempo de sobrevivência for 0, significa que o cookie foi excluído; se o tempo de sobrevivência for um número positivo, significa quantos segundos o tempo de sobrevivência; existe um cookie. Os cookies podem ser usados para salvar temporariamente a conta e a senha do usuário, e o JSP pode lê-los a qualquer momento para verificar a legitimidade do usuário. O status de navegação do usuário pode ser salvo em um cookie e, na próxima vez que o usuário visitar a página web, o JSP exibirá uma página personalizada para o navegador.
3. Converta a codificação Unicode
Durante o processo de depuração de muitas páginas JSP, foram encontrados problemas causados pela conversão da codificação de caracteres chineses e da codificação Unicode. Por exemplo, os caracteres chineses na página JSP vistos no navegador estão todos distorcidos e. a página JSP não pode ser exibida normalmente, o JSP não pode receber caracteres chineses enviados no formulário, a leitura e a gravação do banco de dados JSP não podem obter o conteúdo correto, etc. Unicode.Quando o software está em execução, ele é baseado em Nesse momento, a configuração "Locale/Lang/Codepage" determina as configurações de codificação de caracteres locais correspondentes e processa os caracteres locais de acordo. Portanto, a conversão mútua entre Unicode e conjuntos de caracteres locais deve. ser alcançado durante o processo de processamento, e até mesmo dois caracteres locais diferentes usando Unicode como intermediário na conversão entre conjuntos de caracteres. Este método é ainda mais estendido no ambiente de rede, e qualquer informação de caractere em ambas as extremidades da rede também precisa ser convertida em conteúdo aceitável de acordo com as configurações do conjunto de caracteres.
Como o conjunto de caracteres padrão do IE é GB2312, o conjunto de caracteres padrão do Windows é GBK e o conjunto de caracteres padrão do Java é Unicode. Portanto, sem certa conversão, a página obtida de GBK ou Unicode será exibida diretamente no conjunto de caracteres GB2312. ser ilegível. A linguagem Java usa Unicode para processar caracteres, mas de outra perspectiva, não-Unicode também pode ser usado em programas Java. O importante é garantir que as informações dos caracteres chineses na entrada e saída do programa não sejam distorcidas. Se ISO-8859-1 for totalmente usado para processar caracteres chineses, resultados corretos poderão ser alcançados. Após a conversão e o conjunto de caracteres da página da web ser forçado a ser exibido no conjunto de caracteres GB2312, os caracteres chineses podem ser exibidos normalmente.