Red de conocimiento informático - Conocimiento sistemático - Solicitud: Tesis de graduación sobre un sistema de gestión bibliotecaria escrito en JSP

Solicitud: Tesis de graduación sobre un sistema de gestión bibliotecaria escrito en JSP

1 Prefacio 4

1.1 Propósito 4

1.2 Alcance 4

1.3 Definiciones en este sistema 4

2 Referencia de datos 4

3 Idea de diseño 4

3.1 Diseño de capa de datos 5

Activador 5 de la tabla user_book

Procedimiento almacenado de usuario para renovación de libro 6

Vista de la tabla de recordatorio de vencimiento 7

3.2 Diseño de capa de enlace de datos 8

Diseño de Bean de entidad UserBook 9

Entidad UserConsumer Diseño de Bean 10

Diseño de Bean de entidad UserLogBook 11

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

Diseño de Bean de sesión TheBook 13

Bean de sesión TheUser Diseño 14

Bean TheLog Session Diseño 15

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

Bean CheckValue 16

Bean EnCode 16

Bean JDBCBean 16

Bean Rank 16

Bean SetUp 16

Bean SplitPage 17

Bean UserLogin 17

Bean SearchBook 17

Bean SearchDeadline 17

Servlet ValidateIMG 17

Servlet GetDelete servlet 17

Servlet GetBookSubmit 18

Servlet GetUserSubmit 18

Servlet GetRenewBook ​​18

Servlet GetBorrowBook ​​18

Servlet GetReturnBook 18

4 Estructura del programa 18

4.1 Estructura de organización del programa 18

4.2 División de autoridad funcional 20

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

4.4 Funciones implementado por este sistema 22

5 División de tareas 22

1 Prefacio

1.1 Propósito

Este documento describe en detalle la gestión de la biblioteca. El sistema está diseñado principalmente para proporcionar a los desarrolladores una comprensión profunda de la construcción y el mantenimiento de este proyecto.

1.2 Alcance

La descripción de este documento es únicamente para la versión 1.0 del sistema de gestión bibliotecaria.

1.3 Definiciones en este sistema

Las siguientes son las definiciones de los términos especializados utilizados en este manual y las frases originales de las siglas extranjeras:

Definición y descripción de términos o abreviaturas

booksManager El nombre de este sistema

Permisos del sistema de lectura: lectores normales

Permisos del sistema BookAdmin: bibliotecario

UserAdmin Permiso del sistema: Usuario Administrador

SuperAdmin Permiso del sistema: Superadministrador (Administrador del sistema)

Rol de usuario del sistema de pregrado: Estudiante de pregrado

Rol de usuario del sistema de posgrado: Estudiante de posgrado

Rol de usuario del sistema docente: docente

2 Cita de datos

Notas de la conferencia "Plataforma de software de aplicaciones y tecnología central" de la Universidad de Tsinghua Gu Ming

p>

Documento del asistente docente "Plataforma de software de aplicación y tecnología central" de la Universidad de Tsinghua Zhang Weiye, Wei Lan, Chen Yong, Lin Cairong

"Mastering EJB (Segunda edición)"

" J2EE Applications and BEA Web Logic Server", traducido por Xing Guoqing et al., Electronic Industry Press 2002.4

"Design Pattern: la base del software reutilizable orientado a objetos", Erich Gamma et al., Machinery Industry Presione

3 ideas de diseño

Este sistema está diseñado estrictamente de acuerdo con la estructura de 4 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), capa de aplicación de red (bean Java, servlet Java, página del servidor Java).

Las cuatro capas son completamente independientes y se pueden implementar y ejecutar 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 entregarse a la administración de CMP), pero por razones de aprendizaje, también se utiliza algo de procesamiento lógico en la base de datos. , como usar El procedimiento almacenado + tabla temporal a nivel de sistema maneja la función de que los lectores renueven libros, usa activadores para evitar que los usuarios que no han devuelto libros y libros no devueltos cierren sesión, y usa vistas para detectar registros de libros prestados para implementar el Función de recordatorio de vencimiento.

La capa de enlace de datos realiza la conexión con la base de datos y su función es proteger las diferencias entre la base de datos y la plataforma para lograr la independencia subyacente. Esta capa utiliza búsqueda difusa, mapeo de tablas múltiples, relaciones y otras tecnologías, y arroja objetos agregados u objetos de interfaz remota a la siguiente capa a través de las funciones de búsqueda de datos del método 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 de agregación en vectores de objetos de valor y usar la clase de fecha para completar la búsqueda de registros entre dos fechas específicas. y otros cálculos relativamente complejos.

La capa de aplicación de red completa funciones de aplicación como salto de página y visualización de página, 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, grabación de registros de operación del sistema y 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 del usuario sobre el uso de este sistema, conserva todos los registros de préstamo de libros y puede usarse como sistema registrar e informar datos

Activadores de la tabla user_book

Uno de los activadores utilizados Función: si el libro que se cancelará se toma prestado y no se devuelve, la eliminación se revertirá. funcionar.

CREAR DISPARADOR bookhavelog EN dbo.user_book

PARA ELIMINAR

COMO

declarar @bookISBN varchar(50)

seleccione @bookISBN=book_ISBN de eliminado

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

logb_backdate es nulo)

comenzar p>

rollback

return

end

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

Utilice procedimientos almacenados para realizar renovación de usuario La operación lógica del libro determina si el usuario tiene permiso para renovar en función de la información actual y envía los resultados del procesamiento a una tabla temporal.

CREAR PROCEDIMIENTO user_renew_book @xxxparm int AS

CREAR TABLA ##temp(sentencia varchar(50))

DECLARAR @nombredeusuario varchar(50)

SET @username=(seleccione log_cons_username de user_logBook donde ID=@xxxparm)

SI @username es nulo

BEGIN

INSERT INTO ## temp VALUES ('El ID no EXISTE')

RETURN

END

DECLARAR @timelimit int

SET @timelimit=( seleccione logb_timelimit de user_logBook donde ID=@xxxparm)

DECLARAR @renewday int

SET @renewday=(seleccione cons_maxday de user_consumer donde cons_username=@nombre de usuario)

DECLARE @maxrenew int

SET @maxrenew=(seleccione cons_maxrenew de user_consumer donde cons_username=@nombre de usuario)

IF (@renewday*@maxrenew)>=@timelimit

BEGIN

actualizar user_logBook set logb_timelimit=logb_timelimit+@renewday donde ID=@xxxparm

--actualizar user_consumer set cons_maxrenews=cons_maxrenews-1 donde cons_username=@username

INSERT INTO ##temp VALUES ('renovación exitosa')

RETORNO

FIN

ELSE

COMENZAR

INSERT INTO ##temp VALUES ('No puedes renovar el libro')

REGRESAR

FIN

IR

Vista de la tabla de recordatorios de vencimiento

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

CREAR VER dbo.deadline

COMO

SELECCIONAR EL 100 POR CIENTO SUPERIOR dbo.user_logBook.logb_cons_username,

dbo.user_logBook.logb_outdate, DATEADD([día], dbo.user_logBook.logb_timelimit,

CAST(dbo.user_logBook.logb_outdate AS datetime)) AS fecha_fecha límite, GETDATE()

AS 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_timelimit

DESDE dbo.user_logBook INNER JOIN

dbo.user_consumer ON

dbo.user_logBook.logb_cons_username = dbo.user_consumer.cons_username INNER

ÚNETE

dbo.user_book ON

dbo.user_logBook.logb_book_ISBN = dbo.user_book.book_ISBN

DONDE (DATEDIFF([día], DATEADD([ día], dbo.user_logBook.logb_timelimit,

CAST(dbo.user_logBook.logb_outdate AS datetime)), GETDATE()) >= 0) AND

(dbo.user_logBook.logb_backdate IS NULL)

ORDER BY dbo.user_logBook.logb_cons_username DESC

3.2 Diseño de capa de enlace de datos

bean de entidad

Diseño de Bean de entidad UserBook

Interfaz de inicio remoto del libro de usuario

Descripción del método

findAllBook obtiene toda la información del libro

findByISBN obtiene la información del libro a través del número del libro

p>

p>

findSearcher usa palabras clave para realizar búsquedas difusas en la información del libro

selectUserByBookISBN

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

implementación de findSearcher

El código de búsqueda difusa actual:

seleccione objeto(p) de UserBook como p donde p.bookName como concat(concat('%',?1),'%') o p.bookAuthor como ?1 o p.bookTipo como ?1 o p.bookPublicar como ?1 o p.bookAbstract como ?1 o p.bookISBN como concat(concat('%',?1),'%') o p.bookObservar como ?1

Diseño de UserConsumer Entity Bean

Interfaz de inicio remoto UserConsumer

Descripción del método

findAllUser Encuentra toda la información del usuario

findByUsername Buscar información del usuario por nombre de usuario

findSearcher usa búsqueda difusa de palabras clave para encontrar información del usuario

selectBookByUsername

(userconsumer remoto) usa el método select para implementar tablas relacionadas búsquedas

El código para que findSearcher implemente la búsqueda difusa:

seleccione el objeto(p) de UserConsumer 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 o p.consEmail como ?1

Diseño de Entity Bean de UserLogBook

Interfaz de inicio remoto de UserLogBook

Descripción del método

findallbybookISBN Encuentra todos los registros de préstamo de este libro

findbybookISBN Encuentre el registro de préstamo actual de este libro Registros de préstamo

findallbyusername Encuentre todos los registros de préstamo de este usuario

findbyusername Encuentre los registros de préstamo actuales de este usuario

findbacklog Obtener el préstamo de todos los libros devueltos Registros de libros

findoutlog obtiene los registros de préstamo de todos los libros que no han sido devueltos

findbyID busca los registros de préstamo registrando el número de serie

findlogbyday encuentra los registros de libros prestados en una fecha determinada

(coincidencia aproximada, por ejemplo, envíe "2004-5" 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) de UserLogBook como p donde (p.logbBackdate es nulo y p. logbOutdate como concat(concat('%',?1),'%')) o (p.logbBackdate no es nulo y p.logbBackdate como concat(concat('% ',?1),'%') )

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

la sesión

un

diseño de TheBook Session Bean

TheBook bean

realizar la adición, eliminación, modificación y búsqueda de libros, búsqueda difusa y búsqueda de lectores a través de libros

Todo el procesamiento lógico y las transformaciones se implementan dentro del método y se devuelven al objeto de valor de la interfaz remota o al vector de objeto de valor

El diseño del Bean de sesión de usuario

El Bean de usuario

p>

Adición, eliminación, modificación, búsqueda difusa, búsqueda de libros a través de lectores y otras funciones de implementación de usuario (lector)

Todo el procesamiento lógico y las transformaciones se implementan internamente en el método y se devuelven al control remoto. objeto de valor de interfaz o vector de objeto de valor

Diseño de TheLog Session Bean

TheLog bean

Implementa principalmente varias operaciones en registros (registros de préstamo de libros) y proporciona múltiples métodos Para obtener registros (por lector, por libro, por fecha, estado del préstamo, etc.), todo el procesamiento lógico y las transformaciones se implementan dentro del método y se devuelven al objeto de valor de la interfaz remota o al vector de objeto de valor. siguientes métodos:

Método función

usuario booleano públicoBorrowBook(String nombre de usuario, String bookISBN) utiliza una transacción para encapsular todas las operaciones lógicas para que los lectores tomen prestados libros. Se devuelve un valor verdadero si el. el libro se toma prestado con éxito y se devuelve un valor falso si el libro no se puede tomar prestado. Se llama al bean EnCode para transcodificar chino.

El usuario booleano públicoReturnBook(String logbid) utiliza una transacción para encapsular todas las operaciones lógicas de los lectores que regresan. libros, es decir, para realizar la función de cancelar un registro de libro prestado y llamar al bean enCode para transcodificar chino

public Vector showLogBetweenDays(String dayBegin, String dayEnd) devuelve todos los registros entre dos fechas, principalmente implementado usando la clase Calendario

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

Esta capa es un diseño orientado a objetos basado en los principios de encapsulación de ideas, confusión de datos y reutilización.

De acuerdo con el principio de manejo de errores del sistema de impresión que ejecuta errores en el sistema (System.out.println), los errores de entrada y operación incorrecta del usuario se dirigen a páginas amigables de manejo de errores y se les 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 CheckValue

Encapsula múltiples métodos estáticos.

Se puede usar para detectar si un determinado campo en una tabla ya tiene un valor determinado (se puede usar para detectar usuarios con nombres duplicados y libros con números duplicados), detectar la legitimidad de los nombres de usuario, detectar el legitimidad de contraseñas, y detectar legitimidad de sexo, detectar legitimidad de correo electrónico, detectar legitimidad digital, detectar legitimidad de fecha, etc.

Bean EnCode

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

transcodificación de visualización HTML, por ejemplo: convertir < a <, > a &rt;, saltos de línea en el la base de datos se convierte en saltos de línea en HTML, etc. Esto puede proteger el código ejecutable en el texto enviado por el usuario.

Transcodificación china recargable.

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

Bean JDBCBean

Encapsula todas las operaciones de la base de datos. Incluye un método de ejecución de SQL con un conjunto de resultados devuelto y un método de ejecución de SQL sin un conjunto de resultados devuelto.

Rank 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.

Bean de configuración

Cadena estática pública title="SuperLibrary";//Nombre del sistema

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

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 ="default .jsp";//Página de inicio predeterminada

//Permisos---------------------- --- -----------------------------------------------

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

Cadena pública estática UserAdmin="UserAdmin";//Administrador de usuarios

Cadena pública estática BookAdmin ="BookAdmin";//Administrador de libros

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

//Nivel----------- ------ -------------------------------------------- ------ ------

public static String Under Graduate="Under Graduate";//Estudiantes de pregrado

public static int Under GraduateRenew=1;//Número de renovaciones para estudiantes de pregrado

public static int Under GraduateMaxday=30;//Número de días que los estudiantes de pregrado pueden pedir prestado a la vez

public static String Graduate="Graduate";//Estudiantes de posgrado

public static int GraduateRenew=2;//El número de veces que un estudiante de posgrado puede pedir prestado un préstamo

public static int GraduateMaxday=45;//El número de días que un estudiante de posgrado puede pedir prestado al mismo tiempo

public static String Teacher="Teacher" ;//Teacher

public static int TeacherRenew=3;//El número de veces que un profesor puede renovar un préstamo

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

p>

//------------ ------------------------------------ -------------- --------------------

public static int rsPerPage=5;//Per El número de registros mostrados en la página

public static int minBooks=4;// El número mínimo predeterminado del sistema de libros prestados

Bean SplitPage

La lógica de paginación de registros de datos La implementación y visualización de la página (la más simple, se puede embellecer externamente con una hoja de estilo) están encapsulados en un bean. Al reutilizar, solo necesita pasar el número de conjuntos de registros como parámetros y se puede reutilizar.

Generalmente, se llama como un bean Java a nivel de sesión en la página. El estado de acceso del usuario a esta página se guarda en la sesión. El número de página correspondiente al acceso del usuario a esta página siempre se recuerda antes del final de la sesión.

Bean UserLogin

Encapsula la implementación de la lógica de inicio de sesión del usuario y la visualización de la página (la más simple, que puede embellecerse externamente mediante una hoja de estilo) en un bean, incluidas varias situaciones de inicio de sesión del usuario. reutilizable.

Bean SearchBook

Utilice JDBC para implementar búsqueda difusa y búsqueda precisa de libros por categorías específicas.

Bean SearchDeadline

Utilice JDBC para llamar a la vista y realizar la función de recordatorio de libros caducados.

Servlet ValidateIMG

Genera dinámicamente una imagen que contiene un código de verificación aleatorio. Al generar la imagen, el código de verificación se escribe en la sesión y se 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 del usuario para renovar libros (implementado mediante llamadas JDBC a procedimientos almacenados), lee el valor de estado de la tabla temporal del sistema y salta a la página correspondiente. basado en el valor del estado.

Servlet GetBorrowBook ​​

Procesa la solicitud de préstamo de libros del usuario y dirige errores como que la cuota de préstamo de libros del usuario está llena y el inventario es cero a una página de error amigable si el libro. Si el préstamo es exitoso, saltará a la página de información del libro y le brindará los consejos correspondientes.

Servlet GetReturnBook

Procesa la solicitud de devolución de libros del usuario. Si la devolución del libro se realiza correctamente, 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 de organización del programa

Explicación: la búsqueda de libros y el inicio de sesión del usuario se consideran funciones externas del sistema y la base de datos se llama directamente a través de JDBC Entre los cuales se encuentra el inicio de sesión del usuario. El módulo está encapsulado en un bean Java y se puede reutilizar. Además, la renovación de libros por parte del usuario se implementa a través de un procedimiento almacenado, evitando así el entidad bean que utiliza la tecnología CMP para gestionar las transacciones.

La estructura organizativa del resto de programas de este sistema se implementa estrictamente de acuerdo con la siguiente figura:

Cuadro de estructura organizativa del programa

4.2 División de permisos funcionales

Mapa de la página del sitio

Permiso Nombre Sistema Caracteres definidos Permiso Páginas accesibles

Lectores comunes Lector Ver su propia información (devoluciones de libros, renovaciones

);

Modificar su propia información

Ver libros (pedir prestados libros); userModify

userView

lista de libros

El bibliotecario BookAdmin tiene los permisos de los lectores ordinarios

Agregar, eliminar, modificar y consultar libros

Devolver cuando corresponda;

bookAdder

bookModify

fecha límite

Administrador de usuarios UserAdmin tiene los permisos de lectores normales

Adición de usuarios; , eliminación, modificación y consulta userModify

userView

booklist

userRegister

userModify

userList

userList

userModify

userList

p>

El administrador del sistema SuperAdmin posee libros Permisos de administradores y administradores de usuarios;

Ver registros del sistema;

Eliminar registros del sistema

Configuraciones del sistema; setupSYS.jsp (configuración del sistema, utilizando Java Beans a nivel de aplicación controla todas las páginas, incluida toda la aplicación

4.3 Programa WEB/diseño de página

Utilice código para cerrar el cliente El método de entrada del terminal se utiliza para darse cuenta del problema de que el nombre de usuario y la contraseña no pueden aparecer en chino.

Utilice el código onfocus=this.select() onmouseover=this.focus() para hacer 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:

Incorpore las barras de navegación superior e inferior para que la navegación del sitio web sea clara y cómoda para los usuarios.

Añadir código al encabezado de la página web:

Permite que el cliente no almacene en caché la página web, asegurando que cada vez que el cliente navegue por la página, se obtendrá la última versión del servidor para visualización correcta.

Proporciona búsqueda inteligente (obteniendo tantas coincidencias como sea posible) y búsqueda precisa (obteniendo coincidencias tan precisas como sea posible) de libros, y la programación del lado del servidor utiliza métodos de búsqueda difusa.

Utilice javascript en el cliente para realizar la primera verificación del código en el envío del formulario. Después de pasar el formulario, envíelo al servidor y luego realice la segunda verificación del código incluye: si el usuario. el nombre se repite y si la edad es el número apropiado, si las dos contraseñas ingresadas 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 nombre de usuario y la contraseña están vacíos, etc.

Utilice el método de generar aleatoriamente códigos de verificación de imágenes JPG para evitar que los robots inicien sesión.

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 esta página en la sesión y recuerde siempre el número de página correspondiente al acceso del usuario a esta 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 a nivel de aplicación, siempre que el servidor no esté apagado. esta configuración siempre es válida y funcional para todos los usuarios, si la configuración accidentalmente causa un error del sistema o si 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

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

Uso del sistema Hay cuatro tipos de usuarios: 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 administradores de lectores pueden completar las funciones de gestión de lectores; los administradores pueden utilizar todas las funciones del sistema

Gestión de libros: registro de libros nuevos, consulta de libros, cancelación de libros

Gestión de préstamos: préstamo de libros, devolución de libros, consulta de lectores caducados

p>

Gestión de lectores: agregar lectores, eliminar lectores, consultar lectores, gestión de categorías de lectores (establecer la cantidad de libros que se pueden tomar prestados, la cantidad de días que se pueden tomar prestados, la cantidad de renovaciones, etc. . para estudiantes de posgrado, estudiantes universitarios y profesores)

Gestión del sistema: utilizada por administradores del sistema, incluida la gestión de derechos de usuario (agregar usuarios, eliminar usuarios, cambiar contraseñas, etc.), registros de préstamo del sistema, registros de operación del sistema. , configuración del sistema y otras funciones

La entrada de página tiene verificación de código, el acceso con contraseña está encriptado

Recordatorio de vencimiento del libro

Refleja la idea de diseño en capas, utilizando la arquitectura MVC

Realiza múltiples Beans y la relación entre Beans Se implementó la relación correspondiente

Se utilizaron EJB QL, control de transacciones, etc.

jsp->sessionBean- >entityBean->Se utilizó el modo de base de datos

Se utilizó la base de datos Algunas tecnologías avanzadas como activadores y procedimientos almacenados