Pide consejo: Tesis de graduación sobre un sistema de gestión bibliotecaria escrita en JSP.

1 Prefacio 4

1.1 Propósito 4

1.2 Alcance 4

1.3 Definiciones en este sistema 4

2 Referencias de datos 4

3 Concepto de diseño 4

3.1 Diseño de capa de datos 5

Activador 5 de la tabla user_book

Procedimiento almacenado para la renovación de libros por parte del usuario 6

>

Tabla 7 de vista de vencimiento de reembolso

3.2 Diseño de capa de enlace de datos 8

Manual de usuario Diseño de Bean de entidad 9

Diseño de Bean de entidad consumidor 10

Diseño de Bean de entidad de registro de usuario 11

3.3 Diseño de capa de lógica de datos 12

Diseño de Bean de sesión de libro 13

Diseño de Bean de sesión de usuario 14

Diseño de Bean de sesión de registro 15

3.4 Diseño de capa de aplicación de red 15

Bean de verificación de valor 16

Bean de codificación 16

JDBCBean bean 16

Clasificación de bean 16

Instalación de bean 16

Bean SplitPage 17

Bean de inicio de sesión de usuario 17

Buscar libro bean 17

SearchDeadline bean 17

Verificar servlet 17

obtener eliminar servlet 17

GetBookSubmit servlet 18

Servlet GetUserSubmit 18

Servlet GetRenewBook ​​18

Servlet GetBorrowBook ​​18

Servlet GetReturnBook 18

4 Estructura del programa 18

4.1 Estructura organizativa del proyecto 18

4.2 División de autoridad funcional 20

4.3 Diseño de página/programa web 21

4.4 Funciones implementadas por el sistema 22

5 División de tareas 22

1 Prefacio

1.1 Propósito

Este documento describe el libro en detalle El diseño del sistema de gestión es principalmente para permitir a los desarrolladores tener una comprensión profunda de la construcción y mantenimiento de este proyecto.

1.2 Alcance

Las descripciones de este documento se aplican únicamente a la versión 1.0 del sistema de gestión de bibliotecas.

1.3 Definiciones en este sistema

Las siguientes son las definiciones de los términos profesionales utilizados en este manual y las frases originales de las palabras iniciales extranjeras:

Términos o abreviaturas Definición y descripción

El nombre del sistema.

Permisos del sistema lector: lectores normales

Permisos del sistema BookAdmin: bibliotecario

Permisos del sistema usuario administrador: usuario administrador

Permisos del sistema SuperAdmin: superadministrador (administrador del sistema)

Rol de usuario para el sistema de pregrado: Estudiante de pregrado

Rol de usuario para el sistema de estudiantes de posgrado: Estudiante de posgrado

Rol de usuario del sistema de profesor: Profesor

2 Referencia de datos

Plataforma de software de aplicación de la Universidad de Tsinghua y notas de conferencias sobre tecnología central Gu Ming.

Documentos auxiliares de enseñanza de tecnología central y plataforma de software de aplicación de la Universidad de Tsinghua: Zhang, Chen Yong, Lin.

Master EJB (Segunda Edición)

Aplicaciones J2EE y servidores lógicos Web BEA. Trans. Xing Guoqing y cols. Prensa de la industria electrónica, abril de 2002.

Patrón de diseño: la base del software reutilizable orientado a objetos, Erich Gamma et al., Machinery Industry Press.

3 Concepto de diseño

El sistema está diseñado estrictamente de acuerdo con la estructura de cuatro capas, que se divide en capa de datos (servidor SQL), capa de enlace de datos (bean de entidad) y capa de lógica de datos (bean de sesión) y capa de aplicación de red (Java Bean, Java Servlet, Java Server Page).

Las cuatro capas son completamente independientes y se pueden implementar en cuatro servidores, materializando la idea de aplicaciones distribuidas.

Estrictamente hablando, la función de la capa de datos es implementar el almacenamiento de datos básico (todas las funciones de procesamiento lógico deben ser administradas por CMP), pero por razones de aprendizaje, también se usa algo de lógica en el procesamiento de la base de datos, como como el uso de tablas temporales a nivel de sistema de procedimiento almacenado para procesar las renovaciones de libros de los lectores, el uso de activadores para evitar que los usuarios que no han devuelto libros y los libros no pagados sean cancelados, y el uso de vistas para detectar registros de préstamo de libros para implementar recordatorios de vencimiento.

La capa de enlace de datos realiza la conexión con la base de datos. Su función es proteger las diferencias entre la base de datos y la plataforma y lograr la independencia de la capa subyacente. Esta capa utiliza tecnologías como búsqueda difusa, mapeo de tablas múltiples y relaciones para lanzar objetos agregados u objetos de interfaz remota a la siguiente capa a través de las funciones de búsqueda de datos de métodos de búsqueda y selección.

La capa de lógica de datos implementa el procesamiento lógico de datos, como convertir objetos de interfaz remota en objetos de valor, convertir objetos agregados en vectores de objetos de valor y usar clases de fecha para completar cálculos relativamente complejos, como encontrar dos específicos. fechas entre.

La capa de aplicación de red completa funciones de aplicación como saltos de página y visualización de páginas, así como algunas funciones adicionales como: verificación de imágenes, verificación de inicio de sesión, control de nivel, filtrado de código, control de paginación, detección de valores de entrada, y registros de préstamo de libros Impresión, registro de registros de operación del sistema, configuración del sistema, etc. (JDBC se utiliza para implementar procedimientos almacenados y funciones de búsqueda difusa de libros)

3.1 Diseño de capa de datos

Tabla de base de datos

Descripción de la función del nombre de la tabla

User_consumer registra toda la información del usuario.

User_book registra toda la información del libro.

User_logBook registra la información de los usuarios que utilizan este sistema, conserva todos los registros de préstamo de libros y puede usarse como registros del sistema y materiales de informes.

Disparadores para la tabla user_book

Uno de los desencadenantes utilizados para revertir la operación de eliminación si el libro que se va a cancelar se retira y no se devuelve.

Crear bookhavelog activador en dbo.user_book

Para eliminar

Me gusta

declarar @bookISBN varchar(50)

p >

seleccione @ libro ISBN = libro _ ISBN de eliminado

Si existe (seleccione * de user_logBook donde logb_book_ISBN=@bookISBN y

logb_backdate está vacío)

Inicio

Revertir

Regresar

Fin

Procedimiento almacenado para renovación de libros por parte del usuario

Procedimientos almacenados se utilizan para implementar operaciones lógicas para que los usuarios renueven libros. Según la información actual del usuario, determine si el usuario tiene la autoridad para renovar libros y envíe los resultados del procesamiento a una tabla temporal.

Proceso de creación user_renew_book @xxxparm int AS

Crear tabla ##temp(sentencia varchar(50))

DECLARAR @username varchar(50)

SET @username=(Seleccione logb_cons_username de user_logBook donde ID=@xxxparm)

Si @username está vacío

INICIAR

INSERTAR en # # valor temporal('ID no existe')

Retorno

Fin

Estado @timelimit int

SET @ límite de tiempo =( seleccione log b _ límite de tiempo del usuario _ logBook, donde ID=@xxxparm)

Estado @renewday int

SET @ día de renovación =(seleccione contras _ maxday del usuario _ consumidor donde cons _ nombre de usuario = @ nombre de usuario)

Estado @maxrenew int

SET @ max renew =(seleccione cons _ max renovación del usuario _ consumidor donde cons _ nombre de usuario = @ nombre de usuario)

IF(@ día de renovación * @ renovación máxima) gt;=@límite de tiempo

Iniciar

actualizar usuario _ libro de registro establecer registro _ límite de tiempo = registro _ límite de tiempo @ renovar día donde ID=@xxxparm

-actualizar usuario _ consumidor establecer cons _ maxrenews = cons _ maxrenews-1 donde cons_username=@nombre de usuario

Insertar # # valores temporales ( ' Renovación exitosa')

Volver

Fin

Otro

Inicio

Insertar en # #Valor temporal( 'No tienes permiso para renovar este libro')

Volver

Fin

Ir

Vista de la tabla de recordatorio de vencimiento

p>

Utilice DATEDIFF, DATEADD, CAST, GETDATE y otras funciones para calcular el registro de vencimiento a partir de la tabla de registros de préstamo de libros, luego busque la información del lector correspondiente según este registro y devuélvala por correo electrónico en la página web.

Crear vista dbo.deadline

Como

SELECCIONE EL 100 POR CIENTO SUPERIOR dbo . user_logbook . logb_cons_username,

dbo.user_logBook.logb_outdate, DATEADD ([día], dbo . usuario _ libro de registro . logb _ límite de tiempo,

CAST (dbo . usuario _ libro de registro . logb _ desactualizado AS fechahora)) AS fecha límite _ fecha, GETDATE()

Como fecha_ahora, dbo.user_consumer.cons_name, dbo.user_consumer.cons_kind,

dbo.user_consumer.cons_rank, dbo.user_consumer.cons_email,

dbo.user_consumer. cons_maxrenew,dbo.user_consumer.cons_maxbook,

dbo.user_logbook.logb_book_ISBN,dbo.user_book.book_name,

dbo.user_book.book_kind, dbo.user_book.book_storage, dbo.user_book. book_rank,

dbo.user_logbook.logb_time limit

DESDE la conexión interna de dbo.user_logBook

p>

dbo.user_consumer ON

dbo . usuario _ libro de registro . logb _ cons _ nombre de usuario = dbo usuario _ cons _ nombre de usuario INNER

Unirse

dbo.user_book ON

dbo. . usuario _ libro de registro . logb _ libro _ ISBN = dbo . usuario_ libro . límite,

CAST(dbo . user _ logbook . logb _ outdate AS datetime)), GETDATE()) gt = 0) y

(dbo.user_logBook.logb_backdate está vacío; )

El orden se basa en dbo . user _ logbook . logb _ cons _ nombre de usuario desc

3.2 Diseño de capa de enlace de datos

Entity beans

Manual de usuario Diseño de Entity Bean

Interfaz de página de inicio remota del manual de usuario

Descripción del método

FindAllBook Obtenga toda la información del libro.

FindByISBN obtiene información del libro a través del ISBN del libro.

FindSearcher utiliza la ambigüedad de las palabras clave para encontrar información sobre libros.

selectUserByBookISBN

(libro de usuario remoto) utiliza el método de selección para implementar búsquedas relacionadas en varias tablas.

Código para implementar la búsqueda difusa:

Seleccione el objeto (p) del manual del usuario como p, donde p.bookName es similar a concat(concat(' ',? 1), ' ' ) o le gusta a p.bookAuthor? 1 o p.book¿Te gusta? 1 o p. lanzamiento del libro como? 1 o p. resumen del libro como? 1 o p.bookISBN como concat(concat(' ',?1),' ') o p.bookRemark como? 1

Entidad consumidora del usuario Diseño de Bean

Interfaz de página de inicio remota del consumidor del usuario

Descripción del método

Encuentre toda la información del usuario.

FindByUsername busca información del usuario por nombre de usuario.

FindSearcher utiliza la ambigüedad de las palabras clave para encontrar información del usuario.

Seleccionar libro por nombre de usuario

(usuarioconsumidor remoto) utiliza el método de selección para implementar búsquedas relacionadas en varias tablas.

Código para implementar la búsqueda difusa:

seleccione objeto(p del usuario consumidor como p donde p. consusername como concat(concat(' ',? 1), ' ') o p .consSerial como? 1 o p.consName como concat(concat(' ',? 1), ' ') o p.consRemark como 1

Entidad de registro de usuario Diseño de frijol

Interfaz de página de inicio remota de registro de usuario

Descripción del método

FindallbybookISBN busca todos los registros de préstamo de este libro

FindbybookISBN encuentra este libro El registro de préstamo actual de este libro.

Findallbyusername encuentra todos los registros de préstamo de este usuario.

Findbyusername encuentra todos los registros de préstamo de este usuario.

Findoutlog obtiene los registros de préstamo de. todos los libros no devueltos.

FindbyID busca un determinado registro de préstamo de libros registrando el número de serie de los registros de préstamo de libros de la fecha

(coincidencia aproximada, como enviar "mayo de 2004"). para obtener el tiempo de registro final: todos los registros de préstamo prestados o devueltos en mayo de 2004)

Findallog obtiene todos los registros de préstamo de libros.

FindLogByDay obtiene un conjunto de códigos para el tiempo de grabación final mediante coincidencia difusa:

Seleccione el objeto (p) del registro de usuario como p, donde (p.logbBackdate es nulo, p.logbOutdate es concat(concat(' ',?1),' ')) o (p.logbBackdate no es nulo y p.logbBackdate es similar a concat(concat(' ',?1),'') )

3.3 Diseño de capa de lógica de datos

Bean de sesión

Diseño de bean de conversación de libro

Bean de libro

Realizar la adición , eliminación, modificación y consulta de libros, búsqueda difusa, búsqueda de lectores a través de libros y otras funciones.

El método implementa todo el procesamiento lógico y la conversión internamente y devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota.

Diseño de beans de sesión de usuario

Bean de usuario

Los usuarios (lectores) pueden agregar, eliminar, cambiar, buscar, buscar libros y otras funciones a través del lector.

El método implementa todo el procesamiento lógico y la conversión internamente y devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota.

Diseño de beans de sesión de registro

Judías largas

Implementa principalmente varias operaciones en registros (registros de préstamo de libros) y proporciona múltiples formas de obtener registros (por lector, por libro, por fecha, por estado de prestado y devuelto, etc.). ). Todo el procesamiento lógico y la conversión se implementan dentro del método, que devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota. Además, existen los siguientes métodos:

Función de método

libro de préstamo de usuario booleano público (nombre de usuario de cadena, ISBN del libro de cadena) utiliza una transacción para encapsular todas las operaciones lógicas para que los lectores tomen prestados libros. Cuando pedir prestado un libro devuelve con éxito un valor verdadero, no puede devolver un valor falso, por lo que se llama al bean enCode para transcodificar el chino.

El usuario booleano público Returnbook (String Logbid) encapsula todas las operaciones lógicas de devolución de libros de una transacción, es decir, implementa la función de cancelación de un registro de préstamo de libros y llama al bean enCode para transcodificar el chino. .

El registro público de vectores entre días (inicio del día de cadena, fin del día de cadena) devuelve todos los registros entre dos fechas, implementado principalmente mediante la clase Calendario.

3.4 Diseño de la capa de aplicación de red

Esta capa está diseñada en base a los principios de encapsulación, borrosidad de datos y reutilización del pensamiento orientado a objetos.

De acuerdo con el principio de manejo de errores de impresión de errores de operación del sistema en el sistema (System.out.println), la entrada del usuario y los errores de operación conducen a páginas amigables de manejo de errores y brindan indicaciones amigables.

Cada llamada a un bean de sesión se escribe en el archivo de registro de ejecución del sistema. La ruta predeterminada es c:\\booksmanagerlog.dat.

Bean de verificación de valor

Encapsula múltiples métodos estáticos.

Se puede utilizar para detectar si un determinado valor ya existe en un determinado campo de una tabla (se puede utilizar para detectar usuarios duplicados y cuentas duplicadas), detectar nombre de usuario, contraseña, edad, correo electrónico, número, legalidad. de fechas, etc

Bean de codificación

Trabajo de codificación y transcodificación de empaquetado:

Conversión de código de visualización HTML, por ejemplo, conversión

Transcodificación china que puede ser código sobrecargado.

Codificación de cifrado y descifrado de contraseñas.

Bean JDBCBean

Encapsula todas las operaciones de la base de datos. Incluyendo métodos de ejecución de SQL con devolución de conjunto de resultados y método de ejecución de SQL sin devolución de conjunto de resultados.

Level Bean

Encapsula el acceso a la página con cuatro permisos (lectores normales, administradores de usuarios, bibliotecarios y administradores del sistema), lo que equivale a la función de bloqueo de página.

Instalar beans

título de cadena estática pública = " super biblioteca "; // nombre del sistema

cadena estática pública dbS = " booksManagerDS // JNDI de la base de datos nombre

Cadena estática pública errorPage="dealError.jsp? theError = ";//Página de manejo de errores amigable, use el método get para pasar el motivo del error.

Página de inicio de cadena estática pública = "JSP";//Página de inicio predeterminada

/ /authority-.

Cadena estática pública Reader = " Reader//Reader

Cadena estática pública UserAdmin = " UserAdmin//Usuario Administrador

Pública Cadena estática BookAdmin = " BookAdmin//Bibliotecario

Cadena estática pública SuperAdmin = " SuperAdmin//Administrador del sistema

//Grado- >Cadena estática pública licenciatura = "Pregrado"; /Estudiantes de pregrado

public static int undergater enew = 1; //El número de veces que los estudiantes de pregrado pueden renovar sus préstamos

public static int. que los estudiantes de pregrado pueden pedir prestado al mismo tiempo

Public static string Graduate = " Graduate //Estudiante de posgrado

public static int Graduate new = 2; //Estudiante de posgrado. El número de veces El préstamo se puede renovar.

public static int Graduate max day = 45; //El número de días que los estudiantes graduados pueden pedir prestado a la vez.

Public static string Teacher = " Teacher//Teacher

public static int teacher new = 3; //El número de veces que el profesor puede renovar el préstamo.

public static int teacher max day = 60; //El número de días que un profesor puede pedir prestado a la vez

// -

public static int rsPerPage = 5; Muestra el número de registros por página.

public static int min books = 4; //Cantidad mínima de préstamo predeterminada del sistema

Bean SplitPage

Implementación lógica de datos. paginación de registros y visualización de páginas (el más simple se puede encapsular en un bean (hermoso con hojas de estilo externas). Cuando se reutiliza, solo necesita pasar varios parámetros de un conjunto de registros, que generalmente se denomina bean Java a nivel de sesión en la página y en la sesión Guarde el estado de acceso del usuario a la página y recuerde siempre el número de página correspondiente al acceso del usuario a la página antes de que finalice la sesión. p>Implementación lógica del inicio de sesión del usuario y visualización de la página (la más simple se puede embellecer con una hoja de estilo externa) Encapsulado en un bean, incluido el procesamiento de varias situaciones de inicio de sesión del usuario, se puede reutilizar

Buscar. para Shudou

Utilice JDBC Realice funciones de recuperación difusa y de recuperación precisa de libros.

Bean SearchDeadline

Utilice JDBC para llamar a la vista para implementar la función de devolución de libros vencidos.

Servlet de autenticación

Genera dinámicamente imágenes con códigos de verificación aleatorios, escribe el código de verificación en la sesión mientras genera la imagen y lo compara con la entrada de inicio de sesión del usuario. Puede evitar eficazmente que los robots inicien sesión.

GetDelete servlet servlet

Procesa las operaciones de cierre de sesión de libros, usuarios y registros, y salta a la página correspondiente según el valor de retorno.

Servlet GetBookSubmit

Procesa el almacenamiento de libros y la modificación de la información del libro, y salta a la página correspondiente según el valor de retorno.

Servlet GetUserSubmit

Procesa el registro del usuario y la modificación de la información del usuario, y salta a la página correspondiente según el valor de retorno.

Servlet GetRenewBook

Procesa la solicitud de renovación del usuario (JDBC llama al procedimiento almacenado), lee el valor de estado de la tabla temporal del sistema y salta a la página correspondiente según el valor de estado.

Servlet GetBorrowBook

Procesa la solicitud de préstamo de libros del usuario y guía errores como que la cuota de préstamo del usuario está llena y el inventario es cero a una página de error amigable. Si el préstamo del libro se realiza correctamente, saltará a la página de información del libro y le dará las indicaciones correspondientes.

Servlet GetReturnBook

Procesa la solicitud de devolución de libros del usuario. Si el libro se devuelve exitosamente, saltará a la página de registro de préstamo de libros del usuario y le dará las indicaciones correspondientes.

4 Arquitectura del programa

4.1 Estructura organizativa del proyecto

Descripción: La búsqueda de libros y el inicio de sesión de usuario son funciones externas del sistema, que llaman directamente a la base de datos a través de JDBC, en qué usuario inicia sesión El módulo está encapsulado en un bean Java y se puede reutilizar. Además, los usuarios renuevan los libros mediante procedimientos almacenados, evitando así los beans de entidad que utilizan la tecnología CMP para gestionar las transacciones.

La estructura organizativa de otros proyectos en este sistema está estrictamente de acuerdo con la siguiente figura:

Organigrama planificado

4.2 División de autoridad funcional

Mapa de la página del sitio web

El sistema de nombres de permisos define los permisos del rol para acceder a la página.

Los lectores comunes leen su propia información (devuelven libros, renuevan libros);

modifican su propia información;

buscan libros (los usuarios toman prestados libros); /p>

Vista de usuario

Lista de libros

El bibliotecario BookAdmin tiene los permisos de los lectores normales;

Agregar, eliminar y consultar libros;

p>

Reembolso vencido; modificación del usuario

Vista de usuario

Lista de libros

Contable

Modificación del libro

p>

Fecha límite

Administrador de usuarios UserAdmin tiene los permisos de lectores normales;

Adición, eliminación y modificación de usuarios.

Vista de usuario

Lista de libros

Registro de usuario

Modificación de usuario

Lista de usuarios

SuperAdmin, administrador del sistema, posee permisos de bibliotecarios y administradores de usuarios;

Ver registros del sistema;

Eliminar registros del sistema;

Configuraciones del sistema; todo incluido la página setupSYS.jsp (configuraciones del sistema, utilizando java beans a nivel de aplicación para controlar toda la aplicación).

4.3 Programa Web/Diseño de Página

Uso

Usa onfocus = this. seleccione () onmouseover = esto. El código focus() hace que el cuadro de texto absorba y gane foco automáticamente para facilitar la entrada del usuario.

Utilice el parámetro WMODE="transparent" para hacer que el fondo flash sea transparente y se integre mejor en la página web.

En cada página, utilice el código:

ltIFRAME borde del marco = 0 altura = 88 altura del margen = 0 ancho del margen = 0 desplazamiento = no src = "../iframe/ top htm " ancho = 755 color del borde = " # 000000 " > lt/IFRAME gt;

borde del marco ltIFRAME = 0 alto = 68 alto del margen = 0 ancho del margen = 0 desplazamiento = no src = ". /iframe/below . htm " width = 755 border color = " # 000000 " > lt/IFRAME gt;

Las barras de navegación superior e inferior integradas hacen que la navegación por el sitio web sea clara y cómoda para los usuarios.

Agregar código al encabezado:

ltmeta HTTP-EQUIV = " pragma " CONTENT = " no-cache " gt

ltmeta HTTP-EQUIV = " expires " CONTENT = " 0 "

El cliente no almacena en caché las páginas web, lo que garantiza que cada vez que el cliente navega por la página, obtenga la última versión del servidor y la muestre correctamente.

Proporciona libros de búsqueda inteligente (obtenga tantas coincidencias como sea posible) y búsqueda precisa (obtenga una coincidencia lo más precisa posible); la programación del lado del servidor utiliza búsqueda difusa.

Utilice javascript en el cliente para verificar el envío del formulario la primera vez y luego enviarlo al servidor la segunda vez. El código de verificación incluye: si el nombre de usuario se repite, si la edad es un número apropiado, si las dos contraseñas son consistentes, si el correo electrónico es legal, si la contraseña es demasiado corta, si el nombre de usuario es demasiado corto, si el el nombre de usuario y la contraseña están vacíos, etc.

Evita que los robots inicien sesión generando aleatoriamente códigos de verificación de imágenes JPG.

Utilice java beans a nivel de sesión para implementar la paginación en la página, guarde el estado de acceso del usuario a la página en la sesión y recuerde siempre el número de página correspondiente al acceso del usuario a la página antes del final de la sesión.

Utilice java beans a nivel de aplicación en la página para implementar configuraciones seguras del sistema. Cuando se inicia el servidor, los parámetros operativos del sistema se pueden configurar en el nivel de la aplicación. Esta configuración permanece vigente y se aplica a todos los usuarios siempre que el servidor no se apague. Si una configuración accidental causa un error del sistema o desea restaurar la configuración predeterminada del sistema, solo necesita reiniciar el servidor.

En el paquete de llamada ejbClient del bean de sesión, cree un registro de operaciones del sistema y escríbalo en C:\\booksManagerLog.dat del servidor web a través de la clase writeF en el paquete, que puede usarse para consulta.

4.4 Funciones implementadas por este sistema

Determina la información básica del libro, incluido el título, autor, fecha de publicación, estado actual del préstamo y otros atributos.

Los usuarios del sistema incluyen lectores, bibliotecarios, administradores de usuarios y administradores del sistema.

Los lectores pueden consultar libros; los bibliotecarios pueden completar la gestión de libros y los préstamos; los administradores de lectores pueden completar las funciones de gestión de lectores pueden utilizar todas las funciones del sistema.

Gestión de libros: alta de libros nuevos, consulta de libros, cancelación de libros;

Gestión de préstamos: préstamo y devolución de libros, consulta de lectores vencidos.

Gestión de lectores: agregue lectores, elimine lectores, consulte lectores, administre categorías de lectores (establezca la cantidad de libros que los estudiantes de posgrado, estudiantes universitarios, profesores, etc. pueden pedir prestados, la cantidad de días que pueden pedir prestados, el número de veces que se pueden renovar, etc.)

Administración del sistema: para uso de los administradores del sistema, incluida la administración de derechos de usuario (agregar usuarios, eliminar usuarios, cambiar contraseñas, etc.), registros de préstamo del sistema, registros de operación, configuraciones del sistema y otras funciones.

Hay un código de verificación ingresado en la página y el acceso con contraseña está encriptado.

Recordatorio de vencimiento de reserva

Refleja la idea de diseño en capas y utiliza la arquitectura MVC.

Implemente varios beans y realice la relación correspondiente entre beans.

Se utilizan EJB QL, control de transacciones, etc.

Usando JSP-gt; session bean-gt; entidad bean-gt; esquema de base de datos

La base de datos utiliza algunas tecnologías avanzadas, como activadores y procedimientos almacenados.