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 p>
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> 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 p>
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 p>
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