Página de bienvenida bienvenido.jsp
Cuando el usuario ingresa la contraseña correcta, switch.jsp controla la página JSP para dirigir la página de bienvenida de bienvenido.jsp. En esta sección, desarrollamos la página de bienvenida.jsp. Dado que bienvenido.jsp necesita utilizar una biblioteca de etiquetas de terceros, es necesario realizar algunas configuraciones en JBuilder para introducir esta biblioteca de etiquetas antes de desarrollar bienvenido.jsp.
Configurar bibliotecas de etiquetas de terceros en JBuilder
La organización de código abierto de Apache proporciona muchas bibliotecas de etiquetas útiles. La página de bienvenida bienvenido.jsp necesita usar una biblioteca de etiquetas de fecha y hora de Apache. Puede usar esta biblioteca de etiquetas para proporcionar varias visualizaciones de hora en JSP. /2009-07/02/jakarta-taglibs-datetime-1.0.1.zip.
La biblioteca de etiquetas generalmente incluye dos archivos, uno es el archivo JAR del paquete de clase y el otro es el archivo de descripción de etiquetas con la extensión .tld. Después de descomprimir el archivo comprimido descargado, colocamos los archivos taglibs-datetime.jar y taglibs-datetime.tld en el directorio <directorio del proyecto>/datetimeTag.
Para utilizar una biblioteca de etiquetas de terceros en un proyecto, debe configurar la biblioteca de etiquetas en JBuilder de antemano y hacer referencia a ella en el proyecto. Configurar bibliotecas de etiquetas es similar a configurar bibliotecas de clases y también se realiza a través del cuadro de diálogo Configurar bibliotecas. La biblioteca de clases y la biblioteca de etiquetas de JBuilder se enumeran en el árbol de la izquierda del cuadro de diálogo Configurar bibliotecas. La biblioteca de clases se muestra como. icono, mientras que la biblioteca de etiquetas aparece como icono. A continuación configuramos la biblioteca de etiquetas datetime en JBuilder.
1. Herramientas->Configurar->Bibliotecas->Configurar cuadro de diálogo Bibliotecas.
Haga clic en el botón Agregar... en la esquina inferior izquierda del cuadro de diálogo Configurar bibliotecas para abrir el cuadro de diálogo Asistente para nueva biblioteca, como se muestra a continuación:
Figura 17 Cuadro de diálogo Asistente para nueva biblioteca |
Asigne un nombre a esta biblioteca en Nombre: datetimeTag y presione Aceptar para volver al cuadro de diálogo Configurar bibliotecas.
2. Especifique el archivo de la biblioteca de etiquetas.
Después de regresar al cuadro de diálogo Configurar bibliotecas, el nodo datetimeTag aparece en el árbol de la izquierda. Debido a que no se ha especificado ningún archivo de biblioteca de clases, se muestra en rojo llamativo a diferencia de otros nodos. Haga clic en datetimeTag y cambie a la página de configuración de Configuración de biblioteca. a Framework En la página de pestañas, como se muestra a continuación:
Figura 18 Cambiar al marco |
Seleccione la opción Biblioteca de etiquetas JSP definida por el usuario en el cuadro desplegable Marco, haga clic en el botón Agregar... en la parte inferior derecha de la página de pestañas y aparecerá el cuadro de diálogo Definir nueva biblioteca de etiquetas, como se muestra en la figura. abajo:
Figura 19 Archivo de descripción que especifica la biblioteca de etiquetas |
En el cuadro de diálogo Definir nueva biblioteca de etiquetas, haga clic en el botón... después del archivo TLD y navegue hasta el archivo <directorio del proyecto>/datetimeTag/taglibs-datetime.tld. Después de la confirmación, JBuilder completa automáticamente las configuraciones restantes. No es necesario cambiar esta configuración de reabastecimiento automático de JBuilder. Entre ellos, Prefix especifica un prefijo de referencia para esta biblioteca de etiquetas. Haga clic en el botón Aceptar para volver al cuadro de diálogo Configurar bibliotecas. El nodo datetimeTag se muestra en color normal como se muestra a continuación:
Figura 20 El efecto después de configurar correctamente la biblioteca de etiquetas |
Haga clic en el botón Aceptar en el cuadro de diálogo Configurar bibliotecas para completar la configuración de la biblioteca de etiquetas de fecha y hora.
3. Haga referencia a esta biblioteca de etiquetas recién configurada en el proyecto actual.
Proyecto->Propiedades del proyecto...->Rutas->Cambiar a la pestaña Bibliotecas requeridas->Haga clic en el botón Agregar... para seleccionar la etiqueta de fecha y hora de la biblioteca de clases de JBuilder. Después de una configuración exitosa, el cuadro de diálogo Propiedades del proyecto tiene el siguiente aspecto:
Figura 21 Biblioteca de referencia del proyecto |
Crear página JSP de bienvenida
1. Archivo->Nuevo…->Web->Haga doble clic en el icono JSP para iniciar el Asistente para crear JSP, especifique el nombre del archivo JSP como bienvenido y haga clic en Siguiente para continuar con el siguiente paso.
2. Haga referencia a la biblioteca de etiquetas datetimeTag en la página bienvenido.jsp.
En el paso 2 del asistente, puede seleccionar varias bibliotecas de etiquetas en JBuilder. La biblioteca de etiquetas datetimeTag que configuramos en la sección anterior también aparece en la lista Bibliotecas de etiquetas, como se muestra en la siguiente figura:
Figura 22 Biblioteca de etiquetas de referencia |
Expanda la etiqueta datetime, marque taglibs-datetime y haga clic en Siguiente para ir al siguiente paso.
3. Haga referencia al objeto userBean colocado en el dominio de sesión en switch.jsp.
Figura 23 Referencias al userBean colocado en la sesión en switch.jsp |
Haga clic en Agregar Bean... para seleccionar la clase bookstore.User, especifique el nombre del Bean como ses_userBean en la columna ID y seleccione el alcance de la sesión en la columna Alcance. ses_userBean es el nombre especificado para userBean en switch.jsp. El contenedor web buscará el objeto en la sesión basándose en este nombre. Si no puede encontrarlo, creará el objeto bookstore.User porque se llama a bienvenido.jsp después del cambio. .jsp Entonces, a menos que la sesión haya caducado, se puede encontrar el objeto userBean.
Haga clic en Finalizar directamente para crear el archivo bienvenido.jsp. El código es el siguiente:
Listado de Código 15 página de bienvenida bienvenido.jsp
1. <%@ página contentType="text/html; charset=GBK" %> 2. <%@ taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt" %> 3. <html> 4. <cabeza> 5. <título> 6.bienvenido 7. </título> 8. </cabeza> 9. <jsp:useBean id="ses_userBean" alcance="sesión" clase="librería.Usuario" /> 10. <jsp:setProperty nombre="ses_userBean" propiedad="*" /> 11. <cuerpo bgcolor="#ffffff"> 12. <h1> 13. JSP generado por JBuilder 14. </h1> 15. </cuerpo> 16. </html> |
La biblioteca de etiquetas a la que se hace referencia en el paso 2 del asistente se configura correspondiente al código de declaración de la biblioteca de etiquetas a la que se hace referencia en la línea 2. El Bean configurado en el paso 3 corresponde a las líneas 9 a 10 de código. Dado que no es necesario completar el valor del Bean en bienvenido.jsp, el código de la línea 10 debe eliminarse manualmente.
A continuación, hacemos referencia a la biblioteca de etiquetas datetime en el archivo bienvenido.jsp y la usamos para generar una cadena con formato de hora actual. Abra el archivo bienvenido.jsp y cambie a la página de vista Fuente. Primero borre el código generado por JBuilder en <body></body>, ingrese "<dt:" en <body></body>, JBuilder usará la función TagInsight para mostrar todos los elementos de etiquetas disponibles en esta biblioteca de etiquetas, de la siguiente manera Como se muestra en la figura:
Figura 24 Uso de TagInsight para ingresar a la biblioteca de etiquetas
TagInsight se puede utilizar para ingresar fácilmente las etiquetas disponibles en la biblioteca de etiquetas, lo que acelera enormemente la entrada de códigos de la biblioteca de etiquetas y garantiza la corrección. En bienvenido.jsp, usamos la biblioteca de etiquetas para obtener una cadena de tiempo formateada actual. Además, también obtenemos el nombre del usuario a través de ses_userBean. El código final de bienvenido.jsp tiene este aspecto:
Listado de Código 16 bienvenido.jsp hace referencia a la biblioteca de etiquetas y al objeto de sesión
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. <cabeza> 5. <título>bienvenido</título> 6. </cabeza> 7. <jsp:useBean id="ses_userBean" alcance="sesión" clase="librería.Usuario"/> 8. <body bgcolor="#ffffff">Tú eres 9. <%=ses_userBean.getUserName()%>, bienvenido a iniciar sesión. <br> 10. La hora actual es <dt:format patrón="MM/dd/aaaa hh:mm"><dt:currentTime/></dt:format> 11. <br>Haga clic en<a href="quit.jsp">aquí</a>para salir del sistema. 12. </cuerpo> 13. </html> |
Además, JBuilder copió el archivo de descripción de la biblioteca de etiquetas datetime taglibs-datetime.tld en WEB-INF y manipuló el archivo web.xml para declarar la dirección de taglibs-datetime.tld:
Listado de Código 17 Declarar el archivo de descripción de etiquetas en web.xml
1. <?xml versión="1.0" codificación="UTF-8"?> 2.… 3. <aplicación web> 4. <taglib> 5. <taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri> 6. <ubicación-taglib>/WEB-INF/taglibs-datetime.tld</ubicación-taglib> 7. </taglib> 8. </aplicación web> |
Como se muestra arriba, en las líneas 4 a 7 de web.xml, JBuilder agrega automáticamente el archivo de descripción de la biblioteca de etiquetas de fecha y hora para que el contenedor web pueda encontrar correctamente la información requerida.
Al compilar el proyecto para generar un directorio web, JBuilder copiará el archivo JAR taglibs-datetime.jar de la biblioteca de etiquetas datetime al directorio WEB-INF/lib.
Cuando el usuario inicia sesión correctamente, será redirigido a la página bienvenido.jsp. El efecto de la página se muestra a continuación:
Figura 25 página del efecto bienvenido.jsp |
Cuando el usuario hace clic en el enlace "aquí", se vinculará a quit.jsp. La página quit.jsp es responsable de borrar la sesión. Después de borrar la sesión, desvinculará los objetos a los que se hace referencia en la sesión y liberará los recursos.
página de procesamiento de salida quit.jsp
Dado que el protocolo HTTP funciona en forma de solicitud/respuesta, cuando el cliente sale del sistema, debe enviar activamente una solicitud al servidor web para notificar al servidor web que destruya la sesión a tiempo. De lo contrario, el servidor web solo esperará. hasta que expire la sesión antes de destruirla.
Usamos quit.jsp para manejar la salida del usuario del sistema. quit.jsp es responsable de cerrar la sesión y liberar recursos de manera oportuna.
·Cerrar sesión.
·Cierre la ventana del navegador.
El código es el siguiente:
1. <%@ página contentType="text/html; charset=GBK" %> 2.<% 3. sesión.invalidar(); 4.%> 5. <lenguaje de escritura="javaScript" > 6. ventana.abridor = nulo; 7. ventana.cerrar(); 8. </guión> |
La línea 3 es responsable de cerrar sesión. Los objetos colocados originalmente en la sesión se desconectarán y esperarán a que la recolección de basura libere recursos. Para este ejemplo, hay un objeto userBean llamado ses_userBean en la sesión (se coloca en la sesión en switch.jsp. Después de llamar a session.invalidate(), el userBean se desvincula de la sesión y su método valueUnbound()). se activará y luego esperará a que se recoja la basura.
Las líneas 5 a 8 son un programa de script JavaScript responsable de cerrar la ventana. Si la página web no se abre a través de un programa de script (window.open()), el objeto window.opener debe configurarse antes de llamar a window.close(). El script para cerrar la ventana es nulo, como se muestra en la línea 6; de lo contrario, el navegador mostrará un cuadro de diálogo confirmando el cierre. El autor descubrió que este problema ha preocupado a muchos programadores web, así que lo señalé en particular.
Experiencia práctica:
Cuando el usuario sale del sistema, es necesario cerrar la sesión; de lo contrario, el objeto de la sesión no se borrará hasta que expire la sesión en el servidor. Suponga que el tiempo máximo de inactividad de una sesión es de 30 minutos (el tiempo predeterminado si los objetos de la sesión no se borran manualmente, los recursos del sistema ocupados por estos objetos no se liberarán hasta que hayan pasado 30 minutos después de que un usuario salga del sistema). |