Entre los muchos sitios web que existen en Internet, los sitios web dinámicos basados en bases de datos web son los que se utilizan ampliamente. Un sitio web dinámico basado en una base de datos de red web consta de un navegador web como interfaz del cliente, un servidor de base de datos para el almacenamiento de información y un servidor de aplicaciones web que conecta los dos. La tecnología CGI original para desarrollar sitios web dinámicos ha sido reemplazada gradualmente por applets de Java, controles ActiveX, DHTML y JavaScript a medida que la tecnología cliente de aplicaciones web continúa desarrollándose. Estas tecnologías mejoraron enormemente la interfaz de usuario, pero cuando intentaron trabajar en profundidad, comenzaron a encontrar problemas como incompatibilidad con el navegador del cliente, servidores sobrecargados, acceso lento y problemas de seguridad. La tecnología JSP es una llave de oro para resolver estos problemas. Este artículo analiza principalmente algunos problemas técnicos en el proceso de uso de la tecnología JSP para crear sitios web dinámicos.
Tecnología JSP
JSP es una tecnología de desarrollo web basada en Java Servlet y todo el sistema Java. Esta tecnología se puede utilizar para crear sitios web dinámicos avanzados, seguros, rápidos y multiplataforma. Agregar fragmentos de programas Java y etiquetas JSP a archivos HTML de páginas web tradicionales forma una página web JSP. Cuando el servidor web recibe una solicitud para acceder a una página web JSP, primero ejecuta el fragmento del programa y luego devuelve el resultado de la ejecución al cliente en formato HTML. Los fragmentos de programa pueden operar bases de datos, redirigir páginas web, enviar correos electrónicos, etc. Esta es la funcionalidad necesaria para crear un sitio web dinámico. Todas las operaciones del programa se ejecutan en el lado del servidor y solo los resultados se envían al cliente en la red, con requisitos muy bajos para el navegador del cliente. Como se muestra en la Figura 1, cuando el usuario se conecta al sitio web JSP, el usuario solicita una página web y la página JSP responde solo a la solicitud, convierte la solicitud del usuario para la página web en una solicitud de datos y procesa la solicitud a través de JavaBean y encapsula los datos devueltos en una página HTML para devolvérselos a los usuarios.
JSP tiene muchas ventajas:
1. Escriba el programa una vez y ejecútelo en cualquier lugar. Al diseñar JSP, se tuvo plenamente en cuenta la independencia de la plataforma de la aplicación. Basándose en la portabilidad de Java, JSP es compatible con muchas plataformas operativas populares y puede ejecutarse en servidores como Apache, NetScape e IIS.
2. Ejecución rápida. La página JSP solo necesita compilarse una vez y convertirse en código de bytes Java, y luego reside en la memoria del servidor, lo que acelera la respuesta a la página JSP. Si no considera el tiempo que lleva compilar la página JSP por primera vez, la velocidad de respuesta de JSP es mucho más rápida que la de ASP.
3. Ventajas de Java. La tecnología JSP utiliza el lenguaje Java como lenguaje de programación. La tecnología Java multiplataforma, madura, robusta y fácilmente extensible hace que el trabajo de los desarrolladores sea más fácil y sencillo en otros aspectos. Cuando se sospecha que el sistema Windows falla, Java puede prevenir eficazmente que el sistema falle. El lenguaje Java sobresale en la gestión de la memoria al proporcionar métodos para evitar pérdidas de memoria. Además, JSP proporciona un mecanismo de manejo de eventos inesperados más sólido para las aplicaciones, aprovechando al máximo las ventajas de Java.
Dificultades técnicas de JSP
1. Conexión a la base de datos
La conexión a la base de datos es la parte más importante de un sitio web dinámico. Se puede utilizar la tecnología ODBC o JDBC al conectarse a la base de datos back-end. Aunque ODBC es una opción como medio tradicional para conectarse a la base de datos, ODBC tiene los siguientes defectos fatales, lo que lo hace incompetente para solicitudes JSP:
(1) ODBC es una API implementada en lenguaje C que llama a un programa C local desde un programa Java. provocará que traiga una serie de cuestiones similares a la seguridad, integridad y robustez.
(2) En segundo lugar, una implementación completamente precisa de ODBC desde el código C de ODBC a la traducción de la API de Java no será satisfactoria, porque no hay punteros en Java y ODBC utiliza muchos punteros, incluido el puntero nulo extremadamente propenso a errores "void". "*".
(3) Teniendo en cuenta la portabilidad de la plataforma, el uso de ODBC en el desarrollo de programas JSP tendrá efectos negativos, lo que hará que el código no sea adecuado para la portabilidad.
Para que el programa sea fácil de trasplantar y al mismo tiempo tenga seguridad, integridad y solidez, es más apropiado utilizar JDBC para conectarse a la base de datos. JDBC es una API de Java que se puede utilizar para ejecutar declaraciones SQL. Consta de algunas clases e interfaces escritas en lenguaje Java, lo que permite a los desarrolladores escribir aplicaciones de bases de datos completas en lenguaje Java puro. Al utilizar JDBC, las declaraciones SQL se pueden transmitir fácilmente a casi cualquier base de datos. En otras palabras, no es necesario escribir un programa para acceder a Sybase, otro programa para acceder a Oracle y otro programa para acceder a SQL Server de Microsoft. Los programas escritos con JDBC pueden transmitir automáticamente declaraciones SQL al sistema de gestión de bases de datos correspondiente.
Cuando un programa de base de datos local utiliza una base de datos como Access de Microsoft, se puede utilizar el puente JDBC-ODBC desarrollado por Sun. Al tomar prestada esta tecnología, un programa JSP puede acceder a una base de datos con un controlador ODBC. Esto no solo conserva las ventajas de JDBC, sino que también puede utilizar la fuente de datos ODBC proporcionada por Microsoft para conectarse a Access. No importa qué tipo de base de datos sea la otra parte, siempre que haya una interfaz ODBC, puede usar directamente el puente JDBC-ODBC para conectarse a la base de datos sin cambiar el código del programa correspondiente debido a cambios en la base de datos back-end. logrando una perfecta separación entre la capa de aplicación y la capa de base de datos. Si necesita cambiar la base de datos back-end a MySQL, solo necesita instalar el controlador MySQL en la fuente de datos ODBC y podrá usar la base de datos MySQL directamente.
2. Al implementar un sitio web con componentes integrados
, debido a necesidades objetivas, para distinguir fácilmente a los usuarios de LAN locales de los usuarios remotos y proporcionar los permisos correspondientes, se puede utilizar el componente integrado Solicitud para capturar cada conexión al servidor. Se compara la dirección IP del usuario y se otorgan los permisos correspondientes. De esta forma, los usuarios dentro de esta red de área local pueden utilizar todos los recursos públicos y no públicos del sitio web. El método existente también se puede mejorar ingresando varias direcciones IP en la base de datos y otorgando diferentes permisos a diferentes direcciones IP para controlar completamente el uso de los recursos del sitio web por parte del usuario.
El mantenimiento del estado de la sesión es un problema al que deben enfrentarse los desarrolladores de aplicaciones web. Para saber si el usuario todavía está en línea, se utiliza el componente de sesión incorporado. Al darle a cada usuario que inició sesión una variable de sesión, los recursos utilizados por el usuario se pueden cerrar después de que el usuario abandone el sitio web de manera anormal, ahorrando así. memoria y mejorar el rendimiento del servidor.
La clase Cookie también se proporciona en JSP y su constructor tiene dos parámetros, que representan el nombre y el valor de la Cookie. La clase Cookie proporciona varios métodos para establecer los atributos de la Cookie. Por ejemplo, el método setMaxAge se puede utilizar para establecer la vida útil de la Cookie. Si el tiempo de supervivencia es un valor negativo, significa que el navegador cierra la cookie y desaparece; si el tiempo de supervivencia es 0, significa que la cookie se elimina; si el tiempo de supervivencia es un número positivo, significa cuántos segundos; La galleta existe. Se pueden utilizar cookies para guardar temporalmente la cuenta y la contraseña del usuario, y JSP puede leerlas en cualquier momento para verificar la legitimidad del usuario. El estado de navegación del usuario se puede guardar en una cookie y la próxima vez que el usuario visite la página web, el JSP mostrará una página personalizada al navegador.
3. Convierta la codificación Unicode.
Durante el proceso de depuración de muchas páginas JSP, se han encontrado problemas causados por la conversión de la codificación de caracteres chinos y la codificación Unicode. Por ejemplo, los caracteres chinos en la página JSP que se ven en el navegador están todos confusos. la página JSP no se puede mostrar normalmente los caracteres chinos, JSP no puede recibir los caracteres chinos enviados en el formulario, la lectura y escritura de la base de datos JSP no puede obtener el contenido correcto, etc. Esto se debe a que la mayor parte del procesamiento de caracteres centrales del software con características internacionales se basa en. Unicode cuando el software se está ejecutando, se basa en En ese momento, la configuración "Locale/Lang/Codepage" determinó la configuración de codificación de caracteres local correspondiente y procesó los caracteres locales en consecuencia. Por lo tanto, se debe realizar la conversión mutua entre Unicode y los conjuntos de caracteres locales. Se puede lograr durante el proceso de procesamiento, e incluso dos caracteres locales diferentes utilizando Unicode como intermediario Conversión entre conjuntos de caracteres. Este método se extiende aún más en el entorno de red, y cualquier información de caracteres en ambos extremos de la red también debe convertirse en contenido aceptable de acuerdo con la configuración del juego de caracteres.
Dado que el juego de caracteres predeterminado de IE es GB2312, el juego de caracteres predeterminado de Windows es GBK y el juego de caracteres predeterminado de Java es Unicode. Por lo tanto, sin cierta conversión, la página obtenida de GBK o Unicode se mostrará directamente en el juego de caracteres GB2312. ser confuso. El lenguaje Java usa Unicode para procesar caracteres, pero desde otra perspectiva, los programas que no son Unicode también se pueden usar en Java. Lo importante es garantizar que la información de los caracteres chinos al entrar y salir del programa no se distorsione. Si ISO-8859-1 se utiliza completamente para procesar caracteres chinos, se pueden lograr resultados correctos. Después de la conversión y el juego de caracteres de la página web se fuerza a mostrarse en el juego de caracteres GB2312, los caracteres chinos se pueden mostrar normalmente.