proyecto de graduación de microficción de red springboot - con código fuente 031758

Diseño e Implementación de Microrrelato de Springboot Network

Resumen

En la era de los grandes datos, los datos están creciendo de forma explosiva. Para satisfacer la tendencia de la era de la información y los requisitos de seguridad de la información, se ha convertido en una tendencia irresistible utilizar Internet para servir a otras industrias y promover la producción. Bajo los requisitos de las novelas en línea, desarrolle una micro ficción en red con una estructura integral y divida el sistema complejo, que puede dar una respuesta rápida a los cambios en la demanda, garantizar la estabilidad del sistema y asegurar el desarrollo sostenible y a gran escala de los requisitos de la plataforma.

La micro-ficción de red investigada en este documento perfeccionó la construcción de software correspondiente y el trabajo de codificación de programas, adoptó Mysql como la unidad principal de almacenamiento de datos de fondo y utilizó el marco Springboot, la tecnología JSP, la tecnología Ajax para codificar y desarrollar el sistema comercial, y se dio cuenta de la funcionalidad completa del sistema. Al mismo tiempo, completa las funciones básicas de la microficción online: navegación de novelas, información de novelas, clasificación de novelas, lectura de capítulos, gestión de creación de novelas, etc.

Palabras clave: microficción en red; estructura monolítica; base de datos Mysql

Diseño e implementación de micronovela en red springboot.

Abstracto

En la era de los grandes datos, hay un crecimiento explosivo de los datos. Para cumplir con la tendencia de la era de la información y los requisitos de seguridad de la información, se ha convertido en una tendencia irresistible utilizar Internet para servir a otras industrias y promover la producción. Bajo los requisitos de las novelas de red, el desarrollo de una estructura integral de la red de novelas de septiembre, el sistema complejo para dividir, para lograr una respuesta rápida al cambio de demanda, la garantía de la estabilidad del sistema, para garantizar la plataforma sostenible, requisitos de desarrollo de escala.

La micronovela de red estudiada en este artículo mejora la construcción del software correspondiente y la codificación del programa, toma MySQL como la principal unidad de almacenamiento de datos en segundo plano y utiliza el marco springboot, la tecnología JSP y la tecnología Ajax para codificar y desarrollar el sistema comercial, realizando todas las funciones. del sistema. Al mismo tiempo, complete las funciones básicas de las micronovelas en línea: navegación de novelas, información de novelas, clasificación de novelas, lectura de capítulos, gestión de creación de novelas, etc.

Palabras clave :Microficción en red; Estructura integral; base de datos mysql

Tabla de contenido

Capítulo 1 Introducción

1.1  Antecedentes e importancia de la investigación

1.2  Estado de desarrollo

Capítulo 2 Introducción de herramientas de desarrollo y tecnologías relacionadas

2.1 Tecnología J2EE

2.2 Marco de arranque de primavera

2.3 Base de datos MySQL

2.4 Estructura B/S

2.5  Modo de ejecución de JavaScript

2.6  Principio de funcionamiento del sistema B/S

Capítulo 3 Análisis del sistema

3.1  Análisis de factibilidad

3.1.1  Viabilidad técnica

3.1.2  Viabilidad económica

3.1.3  Factibilidad de Operación

3.2  Análisis de la demanda

3.3  Análisis del proceso de negocio del sistema

3.4  Análisis del flujo de datos del sistema

Capítulo 4 Diseño del sistema

4.1  Diseño de la arquitectura del sistema

4.2  Estructura de funciones del sistema

4.3  Diseño del módulo funcional

4.4  Diseño de base de datos

4.4.1  Diseño del modelo conceptual

4.4.2  Diseño de estructura lógica

4.4.3  Diseño de la conexión de la base de datos

Capítulo 5 Implementación del sistema

5.1  Implementación del módulo de inicio de sesión

5.2  Realización del módulo de subsistema de usuario

5.2.1  Módulo de la página de inicio del usuario

5.2.2  Módulo de registro de usuarios

5.2.3  Módulo de revisión

5.2.4 Módulo de información  novedosa _

5.2.5 Módulo de lista de capítulos 

5.3  Implementación del módulo del subsistema administrador

5.3.1  Módulo de gestión de usuarios del sistema

5.3.2  Módulo de gestión novedoso

5.3.3 Módulo de gestión de áreas libres 

Capítulo 6 Pruebas del sistema

6.1  Propósito de la prueba

6.2  Casos de prueba

6.2.1  Prueba de inicio de sesión

6.2.2  Prueba de registro

6.2.3  Prueba de mensaje

6.2.4  Prueba de administración novedosa

6.2.5  Prueba de Compra de Novela

6.3  Resultados de la prueba

Capítulo 7 Resumen y perspectiva

referencias

gracias

  1. introducción
    1. antecedentes y significado de la investigacion

Con la amplia popularización de las redes informáticas en China, la lectura de novelas en línea se ha convertido en los últimos años en un nuevo modelo de Internet. Es una plataforma integral que agrega una serie de otra información sobre la base de la navegación de información estática original, como texto e imágenes. La microficción en red es un sistema de información de gestión con función de interacción dinámica que proporciona este servicio y realiza un sitio web novedoso en Internet. Los usuarios pueden buscar información novedosa en línea y leer, recopilar y comentar novelas según sus preferencias. A través de esta micro-ficción en red, los usuarios pueden ver la información novedosa que necesitan sin salir de casa y navegar por la web en cualquier momento y en cualquier lugar. Deshazte de las limitaciones de la lectura tradicional de novelas.

La micro-ficción en red puede proporcionar una plataforma para que los autores y lectores se comuniquen entre sí. Los autores pueden publicar sus trabajos satisfactorios en esta plataforma para que más personas puedan verlos, y los lectores pueden encontrar trabajos que les interesen en esta plataforma y publicar sus obras favoritas Comentarios sobre las obras, el autor puede modificar el contenido de sus obras y mediar ideas creativas de manera oportuna de acuerdo con los comentarios de los lectores. La existencia de esta plataforma también puede reducir la cantidad de veces para comprar libros nuevos y ahorrar mucho dinero.

    1. estado del desarrollo

En abril de 2007, Canadá organizó un evento de escritura de "Ficción nacional" en Internet. Un total de 12 escritores participaron en el evento, en representación de escritores de 12 provincias y regiones de Canadá. 12 escritores conocidos completaron una novela colectiva en 12 horas. El tema de la novela es "Cross Country Story".

El famoso escritor estadounidense John Updike y otros 44 escritores han completado una novela titulada "La historia comienza con un asesinato" en línea. Esta actividad de escritura de novelas en línea está alojada en Amazon, una conocida librería en línea. Las novelas web están de moda otra vez.

Según las estadísticas, entre los aproximadamente 10 millones de usuarios de Internet en China, el 80% tiene entre 21 y 35 años. Detrás del auge de la literatura en Internet se encuentra el rápido crecimiento de jóvenes escritores y jóvenes amantes de la literatura nacidos en las décadas de 1970 y 1980. Algunas personas incluso describen la literatura en Internet como "el presagio del nuevo movimiento cultural de la era", y el surgimiento de la literatura en Internet puede "hacer sonar el cuerno de una nueva civilización".

Las librerías nacionales en línea aparecieron aproximadamente después de 1997. El espacio gratuito proporcionado por empresas como Netease proporcionó una base material para el desarrollo de las librerías iniciales. Los primeros sitios de libros en línea se centraron principalmente en la reimpresión y la conciencia de los derechos de autor era débil. Algunos sitios web enriquecen el contenido del sitio web escaneando libros físicos como artes marciales y romance a Internet, mientras que más sitios web los reproducen directamente desde otros sitios web. En este entorno general, Golden Bookstore ha ocupado firmemente la posición de líder de los sitios de libros en línea aprovechando su ventaja de ser el primero en moverse. Conocido como "leer en Internet no conoce la Librería Dorada, y es en vano llamarlo un error de red".

  1. Introducción a las herramientas de desarrollo y tecnologías relacionadas
    1. tecnología J2EE

Puede dominar múltiples idiomas extranjeros, y un científico informático domina principalmente los lenguajes de programación, que no son lenguajes naturales humanos, como el lenguaje C, Java, Perl, etc. Dado que el "middleware" desarrollado por diferentes empresas no está lo suficientemente estandarizado, Sun lanzó J2EE y utilizó este estándar para resolver los problemas. Proporciona un buen mecanismo, que permite que cada capa permita que se ejecuten el servidor y los componentes correspondientes, lo que hace que el sistema sea estable y utilizable, eficiente en el desarrollo y fácil de mantener.

    1. Marco de arranque de primavera 

El marco Spring es un marco de aplicación de código abierto en la plataforma Java que proporciona un contenedor con características de inversión de control. Aunque Spring Framework en sí no tiene restricciones en el modelo de programación, su uso frecuente en aplicaciones Java lo hizo tan popular que luego se usó como complemento o incluso como sustituto del modelo EJB (EnterpriseJavaBeans). Spring Framework proporciona una serie de soluciones para el desarrollo, como el uso de las características principales de la inversión de control y la implementación de la inversión de control a través de la inyección de dependencia para realizar la contenedorización del ciclo de vida del objeto de administración, utilizando la programación orientada a aspectos para la administración de transacciones declarativas. , y la integración de una variedad de tecnologías de persistencia administran el acceso a los datos, brindan una gran cantidad de marcos web excelentes para facilitar el desarrollo, etc. Spring Framework tiene la función de inversión de control (IOC). IOC está diseñado para facilitar el mantenimiento y las pruebas de proyectos. Proporciona un método para la configuración y gestión unificadas de objetos Java a través del mecanismo de reflexión de Java. Spring Framework utiliza el contenedor para gestionar el ciclo de vida de los objetos. El contenedor puede configurar objetos escaneando archivos XML o anotaciones específicas de Java en las clases. Los desarrolladores pueden obtener objetos mediante la búsqueda de dependencias o la inyección de dependencias. Programación Orientada a Aspectos(AOP), el marco Spring AOP se basa en el modo proxy y se puede configurar en tiempo de ejecución; el marco AOP está modularizado principalmente para las preocupaciones cruzadas entre módulos. El marco AOP del marco Spring solo proporciona características básicas de AOP. Aunque no se puede comparar con el marco AspectJ, también puede satisfacer las necesidades básicas a través de la integración con AspectJ. Las funciones como la gestión de transacciones y el acceso remoto en el marco Spring se pueden realizar mediante el uso de la tecnología Spring AOP. El marco de gestión de transacciones de Spring trae un mecanismo de abstracción a la plataforma Java que permite que las transacciones locales y globales, así como las transacciones anidadas, funcionen con puntos de guardado y en casi cualquier entorno en la plataforma Java. Spring integra múltiples plantillas de transacciones. El sistema puede configurar transacciones a través de plantillas de transacciones, anotaciones XML o Java, y el marco de transacciones integra funciones como mensajería y almacenamiento en caché. El marco de acceso a datos de Spring aborda las dificultades comunes que encuentran los desarrolladores al usar bases de datos en sus aplicaciones. No solo brinda soporte para todos los marcos de acceso a datos populares como Java: JDBC, iBATS/MyBATIs, Hibernate, Java Data Objects (JDO), ApacheOJB y Apache Cayne, sino que también se puede usar con la gestión de transacciones de Spring para proporcionar acceso a datos Abstracción flexible . El marco Spring no tenía la intención de construir su propio marco Web MVVM al principio. Durante el proceso de desarrollo, sus desarrolladores creyeron que la separación entre la capa de presentación y la capa de procesamiento de solicitudes del marco web Struts existente y entre la capa de procesamiento de solicitudes y el model no fue suficiente, por lo que crearon SpringMVVM.

    1. base de datos mysql

La razón para usar el software MySQL es que múltiples usuarios pueden acceder a él y hay archivos, etc. en él. Primero clasificará los datos y luego los almacenará en tablas por separado. Tales operaciones especiales mejorarán la velocidad del propio sistema de gestión de datos, lo que permitirá que la base de datos se utilice con flexibilidad. El código de MySQL es público y permite que otros lo compilen y actualicen dos veces. Esta característica puede reducir el costo de los usuarios y formar un buen sistema de sitio web después de combinarlo con el software adecuado. Aunque tiene deficiencias, es el principal objeto de aplicación de los usuarios en todos los aspectos.

    1. Estructura B/S

B/S (Navegador/Servidor) es una arquitectura más conveniente que su arquitectura predecesora. Utiliza el servidor web para completar la transferencia y el intercambio de datos. Solo necesita descargar el navegador como cliente, luego el trabajo logrará un efecto de "adelgazamiento" y no es necesario considerar el problema de la instalación continua del software.

    1. Modo de tiempo de ejecución de JavaScript

JavaScript es un lenguaje de secuencias de comandos de alto nivel que pertenece a la Red. Ha sido ampliamente utilizado en el desarrollo de aplicaciones web. A menudo se usa para agregar varias funciones dinámicas a las páginas web y proporcionar a los usuarios efectos de navegación más fluidos y atractivos. Por lo general, los scripts de JavaScript realizan sus propias funciones incrustándolos en HTML

1.1 es un lenguaje de secuencias de comandos interpretado (el código no está precompilado ).

1.2 se utiliza principalmente para agregar un comportamiento interactivo a la página HTML ( una aplicación bajo el lenguaje de marcado universal estándar ).

1.3 se puede incrustar directamente en las páginas HTML, pero escribirlo como un archivo js separado favorece la separación de la estructura y el comportamiento .

1.4 Característica multiplataforma, compatible con la mayoría de los navegadores, puede ejecutarse en múltiples plataformas (como Windows , Linux , Mac , Android , iOS , etc.).

1.5 El lenguaje de secuencias de comandos JavaScript, al igual que otros lenguajes, tiene sus propios tipos de datos básicos, expresiones y operadores aritméticos y el marco básico del programa. JavaScript proporciona cuatro tipos de datos básicos y dos tipos de datos especiales para procesar datos y texto. Las variables proporcionan un lugar para almacenar información y las expresiones pueden completar un procesamiento de información más complejo.

    1. Principio de funcionamiento del sistema B/S

La arquitectura B/S adopta el modo de trabajo de solicitud del navegador y respuesta del servidor.

Los usuarios pueden acceder a información como texto, datos, imágenes, animación, video a pedido y sonido generado por el servidor web en Internet a través de un navegador;

Y cada servidor web se puede conectar con el servidor de la base de datos de varias maneras, y en realidad se almacena una gran cantidad de datos en el servidor de la base de datos;

Descargue el programa del servidor web para ejecutarlo localmente. Si se encuentra una instrucción relacionada con la base de datos durante el proceso de descarga, el servidor web la entregará al servidor de la base de datos para su interpretación y ejecución, y la devolverá al servidor web, y el servidor web lo devolverá al usuario. En esta estructura, muchas redes están conectadas entre sí para formar una gran red, es decir, la red global. Cada empresa puede construir su propia Internet sobre la base de esta estructura.

En el modo B/S, el usuario solicita acceso a muchos servidores distribuidos en la red a través del navegador. La solicitud del navegador se procesa a través del servidor, y el resultado del procesamiento y la información correspondiente se devuelven al navegador. Otros datos Procesamiento y solicitudes son todo completado por el Servidor Web. A través de la estructura del marco y el navegador integrado en el sistema operativo, esta estructura se ha convertido en el modo de estructura principal de las aplicaciones de software actuales.

  1. análisis del sistema
    1. Análisis de viabilidad

En el proceso de desarrollo de software, el análisis de factibilidad sistemático es esencial.La investigación de factibilidad consiste en evaluar si el problema se puede resolver y resolverlo en el menor tiempo y al menor costo. También se deben considerar las ventajas y desventajas de las soluciones a estos problemas para lograr los objetivos anteriores, así como los beneficios económicos de desarrollar estos sistemas a escala. Aquí podemos utilizar la viabilidad técnica, la viabilidad operativa y la viabilidad económica para realizar estudios de viabilidad en nuestro sistema. El análisis de viabilidad de la micro-ficción en red es el siguiente:

      1. viabilidad técnica

La micro-ficción en red usa el lenguaje de programación Java y el modelo MVVM. La parte de la base de datos usa la popular base de datos MYSQL. Todos los recursos de datos en la micro-ficción en red se almacenan en la base de datos Mysql. Este sistema usa operaciones asincrónicas AJAX en muchos lugares. La tecnología AJAX puede actualizar parcialmente los datos especificados por el usuario, lo que no solo reduce el análisis de la página por parte del servidor, sino que también aumenta en gran medida la experiencia del usuario. La configuración del entorno de este sistema también es relativamente sencilla, ya que se utiliza el editor HBuilder, y HBuilder tiene su propio servidor Apache y entorno JDK, por lo que no es necesario reconfigurar.

Este sistema usa Java y Mysql para admitir la lógica de transacciones y datos, y usa H5 para mostrar la página principal.

Los diferentes componentes de una página web HTML se identifican en forma de etiquetas. El siguiente es el diseño de composición básico de HTML:

 

Figura 3-1 Estructura básica de HTML

      1. factibilidad economica

La microficción en red corre en ambiente Java y Mysql, y el costo del sistema se distribuye principalmente en el desarrollo y mantenimiento del software. Sin embargo, si el sistema se pone en uso, no solo será conveniente para las personas, sino que también ahorrará tiempo y energía a los usuarios, y también facilitará enormemente a los operadores y reducirá la carga de trabajo de los operadores. La micro-ficción de la red en realidad no es demasiado complicada, el gasto económico no es grande cuando se desarrolla y el tiempo no se utiliza cuando se desarrolla el sistema. Las ventajas de tiempo y los beneficios económicos superan con creces el costo de mantenimiento y administración. Así es factible y apropiado desarrollar este sistema.

      1. factibilidad operativa

Este sistema es una micronovela web basada en navegador y servidor. Una vez que se completa el desarrollo del sistema, los usuarios solo necesitan ingresar la dirección URL correcta en el navegador para acceder a él. La página principal de este sistema es simple y clara, y se puede operar sin guía de operación. Ya sea un administrador del sistema o un usuario común, todas las operaciones en la página se completan en el navegador, siempre que la computadora esté conectada a Internet Bajo las circunstancias, se puede operar abriendo el navegador. Además, no es necesario realizar una configuración de entorno relevante antes de su uso, por lo que el sistema es conveniente, simple y fácil de usar, por lo que el sistema es fácil y operable.

    1. análisis de la demanda

De acuerdo con la demanda del sistema por parte del usuario, se requiere que el sistema sea simple de operar y capaz de administrar la información de manera precisa y completa. Después de analizar los requisitos de la microficción de la red, todo el sistema se divide principalmente en dos partes: administradores y usuarios comunes, y las funciones de las sucursales en cada módulo son diferentes. Describe la función de la siguiente manera:

Módulo de administrador: gestión de usuarios del sistema, gestión de clasificación de novelas, configuración de nosotros, gestión de registro de usuarios, gestión de creación de novelas, gestión de capítulos, gestión de información de novelas, gestión de bibliotecas, gestión de zonas francas, gestión de sistemas.

Módulos de usuario: navegación de novelas, información de novelas, tablón de anuncios, biblioteca, capítulos, creación de novelas, zona franca, gustos y colecciones de novelas, etc.

El diagrama de caso de uso del usuario se muestra a continuación.

 

Figura 3-1 Diagrama de caso de uso del usuario

El diagrama de caso de uso del administrador se muestra a continuación.

 

Figura 3-1 Diagrama de caso de uso del administrador

De acuerdo con el diagrama de casos de uso, se describen algunos casos de uso importantes.

Los casos de uso de registro se describen en la siguiente tabla.

Tabla 3-1 Descripción del caso de uso de registro

nombre del caso de uso

registro

partícipe

usuario

describir

El usuario llena la información relevante para completar el registro y convertirse en usuario del sistema

condiciones previas

ninguno

condición posterior

El usuario completa la información relevante y la cuenta de usuario está disponible

flujo de eventos

  1. El usuario hace clic en el botón de registro
  2. El usuario completa la información relevante
  3. El usuario confirma y envía información
  4. El sistema indica que el registro fue exitoso

Nota complementaria

  1. Si el sistema detecta que la información ingresada por el usuario no cumple con los requisitos, lo solicitará y regresará a la interfaz de registro.
  2. Si el sistema detecta que la cuenta ingresada por el usuario no está disponible o ya existe, lo solicitará y regresará a la interfaz de registro.

Los casos de uso de inicio de sesión se describen en la siguiente tabla.

Tabla 3-1 Descripción de los casos de uso de inicio de sesión

nombre del caso de uso

Acceso

partícipe

usuario

describir

El usuario completa el nombre de usuario y la contraseña para iniciar sesión en el sistema

condiciones previas

usuario registrado

condición posterior

El nombre de usuario y la contraseña son correctos

flujo de eventos

(1) El usuario ingresa el nombre de usuario y la contraseña en la página de inicio de sesión

(2) El sistema detecta el nombre de usuario y la contraseña ingresados ​​por el usuario

(3) Mostrar inicio de sesión exitoso y volver a la página principal

Nota complementaria

(a) El sistema verifica que la contraseña sea incorrecta y vuelve a la página de inicio de sesión

Los casos de uso para la gestión de información personal se describen en la siguiente tabla.

Tabla 3-1 Descripción de casos de uso de gestión de información personal

nombre del caso de uso

Administrar información personal

partícipe

usuario

describir

Los usuarios ven y modifican la información personal.

condiciones previas

usuario conectado

condición posterior

ninguno

flujo de eventos

(1) Los usuarios ven información personal

(2) Los usuarios modifican la información personal

Nota complementaria

(a) El usuario puede modificar la contraseña

(b) Los usuarios pueden modificar la información de contacto

Los casos de uso de mensajes se describen en la siguiente tabla.

Tabla 3-1 Descripción del caso de uso del mensaje

nombre del caso de uso

mensaje

partícipe

usuario

describir

El usuario deja un mensaje

condiciones previas

usuario conectado

condición posterior

El contenido del mensaje no es ilegal.

flujo de eventos

(1) Ingrese los datos del mensaje en la página del mensaje y envíe el mensaje

(2) Actualizar y mostrar el tablero de mensajes

Nota complementaria

(a) El contenido del mensaje no puede estar vacío

Las descripciones de casos de uso de comentarios se muestran en la siguiente tabla.

Tabla 3-1 Descripción del caso de uso del comentario

nombre del caso de uso

Comentario

partícipe

usuario

describir

Comentarios del usuario

condiciones previas

usuario conectado

condición posterior

Los comentarios no son ilegales.

flujo de eventos

(1) Ingrese los datos del comentario en la página de comentarios y envíe los comentarios.

(2) Actualizar y mostrar el panel de comentarios.

Nota complementaria

(a) El contenido del comentario no puede estar vacío

La descripción del caso de uso de clasificación novedosa se muestra en la siguiente tabla.

Tabla 3-1 Descripción de casos de uso de clasificaciones novedosas

nombre del caso de uso

Clasificación de novelas.

partícipe

usuario

describir

El usuario realiza la nueva operación de clasificación.

condiciones previas

usuario conectado

condición posterior

La novela existe y se puede clasificar

flujo de eventos

(1) Haga clic en la novela para clasificar en la página de novela

(2) Rellene los nuevos datos de clasificación

Nota complementaria

(a) Los nuevos datos del formulario de clasificación no pueden estar vacíos

La descripción del caso de uso de la biblioteca se muestra en la siguiente tabla.

Tabla 3-1 Descripción del caso de uso de la biblioteca

nombre del caso de uso

biblioteca

partícipe

usuario

describir

El usuario realiza operaciones de biblioteca

condiciones previas

usuario conectado

condición posterior

La biblioteca de libros existe y se puede consultar

flujo de eventos

(1) Haga clic en la biblioteca que desea consultar en la página de la biblioteca

(2) Complete los datos de la biblioteca

Nota complementaria

(a) Los datos del formulario de la biblioteca no pueden estar vacíos

Los nuevos casos de uso se describen en la siguiente tabla.

Tabla 3-1 Descripción de nuevos casos de uso

nombre del caso de uso

Gestión de ficción

partícipe

usuario

describir

Los usuarios proporcionan funciones como agregar, modificar, eliminar y ver

condiciones previas

  1. El usuario inicia sesión correctamente en el sistema.
  2. Los usuarios solo pueden modificar y eliminar novelas existentes.

condición posterior

ninguno

flujo de eventos

(1) Los usuarios ven y modifican novelas.

(2) Los usuarios agregan novelas

(3) El usuario borra la novela

Nota complementaria

(a) Cuando la novela recién agregada no cumpla con los requisitos, la adición fallará

(b) Si la novela modificada no cumple con los requisitos, la modificación fallará

Los casos de uso del capítulo se describen en la siguiente tabla.

Tabla 3-1 Descripción del caso de uso del capítulo

nombre del caso de uso

gestión de capítulos

partícipe

usuario

describir

Los usuarios proporcionan funciones como agregar, modificar, eliminar y ver

condiciones previas

  1. El usuario inicia sesión correctamente en el sistema.
  2. Los usuarios solo pueden modificar y eliminar los capítulos existentes

condición posterior

ninguno

flujo de eventos

(1) Los usuarios ven y modifican capítulos

(2) Los usuarios agregan capítulos

(3) Los usuarios eliminan capítulos

Nota complementaria

(a)新添加的章节不符合要求时会添加失败

(b)修改的章节不符合要求时会修改失败

    1. 系统业务流程分析

网络微小说的业务流程如下图所示。

 

图3-3 系统业务流程图

管理员拥有最高权限,在对各项信息进行增加、删除、修改后会更新后台数据库的内容,用户在登录进行小说资讯浏览、章节阅读。书库查询、小说创作、公告栏信息、免费专区了解等指令动作同样会更新后台数据。

    1. 系统数据流程分析

与强调控制逻辑的程序流程图不同,它更关心的是整个系统中数据的具体流动以及数据的加工处理的整个客观过程,是对数据规格的说明。也正因如此,系统数据流图作为系统结构化分析方法中极为重要的一种描述工具备受青睐。

网络微小说的顶层数据流如下图所示。

 

图3-4系统顶层数据流图

 

系统顶层数据流:外部实体为用户,第一个流程为登录验证,用户信息表返回密码验证,是否正确,正确则登录系统,错误则反馈信息,登录系统后,根据不同用户的功能选择,来读写数据库。

系统底层数据流如下图所示。

图3-5系统底层数据流图

 

系统底层数据流:外部实体为管理员和普通用户,数据流分别有管理员和普通用户流向系统数据流程,数据表提供数据支持,来完成逻辑操作。

 

  1. 系统设计
    1. 系统架构设计

网络微小说采用三层开发设计模式,分为:用户界面层,业务逻辑层和数据访问层。用户界面层用来和用户交互,业务逻辑层负责业务的处理和各层之间的数据的传递;数据访问层负责对数据库的访问和检索。

系统的架构图如下图所示。

 

图4-1 系统架构图

 

系统各层之间的调用过程如下:

(1)用户通过用户界面层访问系统,向系统提交请求,界面层对请求进行初步的处理和包装,并判断是否要与业务逻辑层进行交互。

(2)业务逻辑层接收来自界面层的请求,对请求进行数据处理。然后调用数据访问层来实现数据库访问,数据访问层访问数据库,将数据读出并返回给逻辑层。

(3)逻辑层将处理的结果,返回给界面层。界面层加以处理呈现给用户。

    1. 系统功能结构

进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是系统用户管理、小说资讯管理、小说分类管理、章节管理、书库管理、小说创作管理、免费专区管理、系统管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。

系统功能结构图如下所示。

 

图4-2系统功能结构图

    1. 功能模块设计

管理员账户的基本信息管理。主要提供管理员账户的基本信息录入、删除、维护和查询等功能,包括:

管理员录入管理员账户基本信息;

管理员更新、增加及删除管理员账户基本信息;

用户根据管理员账户 ID 查询基本信息;

系统管理员更改个人密码;

留言的基本信息管理。主要提供留言的基本信息录入、修改和查询功能,包括:

用户录入留言基本信息;

管理员更新、增加及删除留言基本信息;

评论的基本信息管理。主要提供评论的基本信息录入、修改和查询功能,包括:

用户录入评论基本信息;

管理员更新、增加及删除评论基本信息;

管理员根据评论 ID 查询评论基本信息;

小说分类的基本信息管理。主要是提供小说分类的基本信息录入、维护和查询功能,包括:

用户录入小说分类基本信息;

用户更新、增加及删除小说分类基本信息;

用户根据小说分类 ID 查询小说分类基本信息;

小说创作的基本信息管理。主要是提供小说创作的基本信息录入、维护和查询功能,包括:

用户录入小说创作基本信息;

用户更新、增加及删除小说创作基本信息;

用户根据小说创作 ID 查询小说创作基本信息;

小说的基本信息管理。主要提供小说的基本信息录入、删除、维护和查询功能, 包括:

管理员录入小说信息;

管理员更新、增加小说基本信息;

管理员根据小说 ID 查询小说基本信息;

用户根据个人信息导航栏查询小说信息;

免费专区的基本信息管理。主要提供免费专区的基本信息录入、删除、维护和查询功能, 包括:

管理员录入免费专区信息;

管理员更新、增加免费专区基本信息;

管理员根据免费专区ID 查询免费专区基本信息;

用户根据个人信息导航栏查询免费专区信息;

    1. 数据库设计

一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。

      1. 概念模型设计

本系统在数据库中存放了多张表,分别是用户表、评论表、书库表、小说分类表、小说创作表、免费专区表、小说资讯表。

系统的主要实体间关系E-R图如下图所示。

 

图4-7系统E-R图

      1. 逻辑结构设计

此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示几个表。

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

xiaoshuobianhao

150

255

3

xiaoshuobianhao

150

255

4

shuming

150

255

5

goumairen

150

255

6

wendang

150

255

7

addtime

DateTime

8

19

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

zhanghao

150

255

3

zhaopian

150

255

4

xingming

150

255

5

liuyan

150

255

6

addtime

DateTime

8

19

7

huifu

150

255

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

10

2

shukuID

1073741823

255

3

pinglunneirong

1073741823

255

4

pinglunren

1073741823

255

5

addtime

DateTime

8

19

6

biao

150

255

7

pingfen

Int

4

10

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

10

2

username

1073741823

255

3

xwid

1073741823

255

4

biao

1073741823

255

5

addtime

DateTime

8

19

6

ziduan

1073741823

255

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

Xiaoshuochuangzuo

150

255

3

xiaoshuobianhao

150

255

4

shuming

150

255

5

xiaoshuoleibie

150

255

6

zuozhe

150

255

7

jiage

150

255

8

beizhu

1073741823

255

9

goumairen

150

255

10

iszf

30

255

11

addtime

DateTime

8

19

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

xiaoshuoleibie

150

255

3

addtime

DateTime

8

19

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

10

2

xiaoshuobianhao

150

255

3

shuming

150

255

4

xiaoshuoleibie

150

255

5

zuozhe

150

255

6

zuozhejianjie

1073741823

255

7

tushujianjie

1073741823

255

8

fengmian

150

255

9

jiage

150

255

10

xiaoshuoyulan

1073741823

255

11

dianzan_d

Int

4

10

12

dianzan_c

Int

4

10

13

addtime

DateTime

8

19

      1. 数据库连接设计

通过Mysql库和Mysqli库函数连接。这种方法是Java连接MySQL经常使用的方法,不管是从效率上还是易用性来说,它都比用ODBC接口连接好。

Java存取mysql数据库的四个步骤是:

(1)建立连接:mysql_connect ();

(2)操纵数据库:mysql_select_db();返回布尔型数据值

(3)操纵数据库中的数据:mysql_query ();

(4)关闭连接:mysql_close ();

数据库连接代码如下所示。

<?Java

error_reporting(0);

//数据库链接文件

$host='127.0.0.1';//数据库服务器

$user='root';//数据库用户名

$password='';//数据库密码

$database='Javarjgcxwzzxa1a8';//数据库名

$conn=@mysql_connect($host,$user,$password) or die('数据库连接失败!');

@mysql_select_db($database) or die('没有找到数据库!');

mysql_query("set names 'gb2312'");

function getoption($ntable,$nzd)

{

$sql="select ".$nzd." from ".$ntable." order by id desc";

$query=mysql_query($sql);

$rowscount=mysql_num_rows($query);

if($rowscount>0)

{

for ($fi=0;$fi<$rowscount;$fi++)

{

?>

<option value="<?Java echo mysql_result($query,$fi,0);?>"><?Java echo mysql_result($query,$fi,0);?></option>

<?Java

}

}

}

  1. 系统实现
    1. 登录模块的实现

该登录模块利用js进行设计,JavaScript函数CheckSubmit()对输入框是否为空进行验证,使用js的技术结合Mysql数据库的查询语句进行登录信息的验证。首先从文本框中分别获得账号user_name和密码user_pw,使用Sql语句“select * from t_user where user_name=‘”+user_name+“’ and user_pw=‘”+user_pw+“’”将查询结果赋给rs结果集,若mysql_query()返回值为空,表示数据库找不到该用户数据,若mysql_query()返回值不为空,则显示登录成功,进入主界面。

用户登录流程图如下所示。

 

5-1用户登录流程

用户登录流程:用户只有输入正确的用户名和密码才会成功进入系统,用户输入用户名密码后点击登录按钮,系统会进行校验该用户名是否存在,如果用户名与密码不匹配或者用户名不存在,则返回主界面。

系统登录界面如下图所示。

 

图5-2系统登录界面

登录功能的逻辑代码如下所示。

* 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

    1. 用户子系统模块的实现
      1. 用户首页模块

在浏览器的地址栏里输入http://localhost:3306/index.Java 地址,就可以跳转到网络微小说的首页,首页是由4个页面组成的,包括top、left、down和center等页面,这里也是浏览者访问系统的入口,通过@ include引入。

首页载入流程图如下所示。

 

5-3首页载入流程

首页载入流程:系统先连接数据库,显示界面参数初始化,读取数据库的数据表,读取html显示模板,对数据按添加时间排序,按照模板设计位置显示数据,刷新显示界面,断开数据库连接。

首页如下图所示。

 

图5-4首页界面

其中载入首页的主要代码如下。

<?Java include_once 'qttop.Java';?>

<?Java include_once 'qtleft.Java';?>

<?Java include_once 'qtdown.Java';?>

      1. 用户注册模块

系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。

用户注册流程图如下所示。

 

5-5用户注册流程

注册个人信息实现流程为:填写个人信息,系统使用JQuery选择器获取在网页中输入的注册信息,再对联系方式、登录密码等信息进行验证,验证通过后用Ajax异步请求方式向服务器发送请求并把数据传送到后台,然后验证用户名是否已存在,如果已存在则注册失败提示“用户名已存在”;如果用户表中没有该用户名则把用户信息加入数据库,把操作状态以json字符串方式返回到前台。Ajax请求成功接收到返回的数据时会触发成功回调函数,然后解析返回的json字符串,系统根据返回信息弹出提示框,注册成功后返回登录页。

用户注册界面如下图所示。

 

图5-5用户注册界面

用户注册页面的逻辑代码如下。

 * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

      1. 评论模块

用户给小说添加评论,包括评分,评论人,评论内容等,在pinglunadd.Java实现评论的逻辑添加,管理员管理系统的所有评论信息,在pinglun_list.Java实现评论的管理。

评论流程图如下所示。

 

5-6信息评论流程

用户登录成功后,浏览小说页面,输入评论语,添加该评论,修改评论,返回评论相关界面。

评论添加界面如下图所示。

 

图5-7评论添加界面

添加评论的主要逻辑代码如下。

<?Java

session_start();

if($_SESSION["username"]=="")

{

echo "<script>javascript:alert('对不起,请您先登陆!');window.close();</script>";

exit;

}

include_once 'conn.Java';

$id=$_GET["id"];

$addnew=$_POST["addnew"];

if ($addnew=="1" )

{

$wenzhangID=$_POST["wenzhangID"];$pinglunneirong=$_POST["pinglunneirong"];$pinglunren=$_POST["pinglunren"];$biao=$_POST["biao"];$pingfen=$_POST["pingfen"];

$sql="insert into pinglun(wenzhangID,pinglunneirong,pinglunren,biao,pingfen) values('$wenzhangID','$pinglunneirong','$pinglunren','$biao','$pingfen') ";

mysql_query($sql);

echo "<script>javascript:alert('评论成功!');  window.opener.location.reload();window.close();</script>";

}

?>

      1. 小说资讯模块

用户选择相应的小说资讯,通过id传参,找到id为此传参的小说,在shoucangadd.Java浏览资讯内容。

小说资讯界面如下图所示。

 

图5-8小说资讯界面

小说资讯管理界面如下图所示。

 

图5-9小说资讯管理界面

小说资讯的主要逻辑代码如下。

<%

String lb=request.getParameter("lb");

HashMap ext = new HashMap();  

new CommDAO().insert(request,response,"xinwentongzhi",ext,true,false,"xinwentongzhi_add.jsp?lb="+lb);

%>

      1. 章节列表模块

管理员发布章节内容后,用户找到对应的章节信息,包括¥,选择相应的章节列表,通过id传参,找到该章节内容。

章节列表流程如下图所示。

                                   

 

图5-10章节列表流程

 

章节列表界面如下图所示。

   

 

图5-11章节列表界面

章节列表的主要逻辑代码:

<mapper namespace="com.project.demo.dao.base.BaseMapper">

    <select id="selectBaseList" resultType="java.util.LinkedHashMap">

        ${select}

    </select>

    <select id="selectBaseCount" resultType="Integer">

        ${count}

    </select>

    <select id="selectBaseOne" resultType="Object">

        ${select}

    </select>

    <update id="updateBaseSql">

        ${sql}

    </update>

    <delete id="deleteBaseSql">

        ${sql}

    </delete>

</mapper>

    1. 管理员子系统模块的实现
      1. 系统用户管理模块

管理员对系统用户的管理,在yhzhgl.Java实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,提交到mod.Java中,使用sql命令更新密码。

管理员用户管理的界面如下图所示。

 

图5-12管理员用户管理界面

用户管理的逻辑代码如下。

 @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

      1. 小说管理模块

管理员在xiaoshuoxinxi_add.Java发布小说,跳转至小说添加表单,提交小说信息,包括小说编号、书名、小说类别、作者、封面等,小说提交后,数据库的小说信息表刷新数据,系统将小说信息展示出来。

小说管理的流程如所示。

 

图5-13小说管理流程

小说分类的界面如所示。

 

图5-14小说分类界面

小说创作管理的界面如所示。

 

图5-15小说创作管理界面

小说创作管理的逻辑代码如下。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

      1. 免费专区管理模块

免费专区管理包括新增、删除、修改、查询免费专区等,以免费专区新增为例,在视图层请求免费专区信息新增,反馈后,调用业务逻辑层,通过业务逻辑层的接口调用底层的数据逻辑层完成数据库联动操作。

免费专区管理的流程如所示。

 

图5-16免费专区管理流程

免费专区添加的界面如所示。

 

图5-17免费专区添加界面

免费专区管理的界面如所示。

 

图5-18免费专区管理界面

  1. 系统测试
    1. 测试目的

在这个产品被投入使用前,首先需要进行试用,这是重要的环节。考虑到某个部分的开发没有缺陷情况下,把各种模块拼接,也有一定概率就存在矛盾。这就好比每个人都很独特,但聚在一起就显得杂乱无章,需要保证有默契的配合。对于测试,要看它的各项内容是否契合的原则。若与最初定下的标准有一定程度上的出入,那么就需要做出一些调整,让最终的大方向朝着目标前进。

    1. 测试用例
      1. 登录测试 

登录测试用例如下表所示。

表6-1登录测试用例

输入

输出

用户名

密码

用户名和密码不能为空

Kkk

aaa

用户名长度不允许,请重新输入!

2109402315

123456

用户名出错,请重新输入!

sssss

123456

用户名出错,请重新输入!

      1. 注册测试 

注册测试用例如下表所示。

表6-2注册测试用例

输入

输出

用户名

密码

确认密码

邮箱

用户名和密码不能为空

Kkk

aaa

aaa

[email protected]

注册成功

210

aaa

abc

[email protected]

注册失败,两次密码不一致

sssss

aaa

aaa

注册成功

      1. 评论测试

评论测试用例如下表所示。

表6-3评论测试用例

功能

测试数据

预期结果

测试结果

添加评论

评论内容:asd

在评论列表中显示评论题目,点击显示评论内容。评论显示为未回答

在评论列表中显示评论题目,点击显示评论内容。评论显示为未回答

回复评论

回答评论:dxvcv。

评论列表中评论“asd”显示已回答,点击评论题目,显示评论内容和回答内容

评论列表中评论“asd”显示已回答,点击评论题目,显示评论内容和回答内容

删除评论

删除评论“asd”

评论成功删除

评论成功删除

      1. 小说管理测试 

小说测试用例如下表所示。

表6-4添加小说测试用例

输入

输出

名称

类别

价格

备注

添加失败

小说1

A

1

添加成功

A

1

添加失败,名称不能为空

小说2

1

添加失败,请选择类别

      1. 小说分类测试 

小说分类测试用例如下表所示。

表6-5小说分类测试用例

输入

输出

名称

类别

数量

备注

添加失败

小说1

A

1

添加成功

A

1

添加失败,名称不能为空

小说2

1

添加失败,请选择类别

    1. 测试结果

经过测试,得到测试结果如下表所示。

表6-6测试结果

序号

测试项目

内容和目的

测试结果

用户登录

输入正确用户名与密码

可以登录

输入错误用户名与密码

提示错误的信息

小说资讯管理

(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

修改登录密码

修改新的密码

成功完成

用户管理

(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

评论管理

(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

小说分类管理

(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

小说创作管理

(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

  1. 总结与展望

本次毕业论文的主要是利用Java+Mysql开发一个安全可靠,操作简易,同时具备业务可扩展的网络微小说。本文详细的论述了网络微小说的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的,系统有普通用户和系统管理员两种角色,本系统多处采用了AJAX的异步交互技术,同时它也叫异步交互技术,利用它我们可以让网页的局部进行数据刷新操作,AJAX和传统的数据更新技术大大增加了客户的体验程度,由于是对局部进行操作那么就减少了一些繁琐而又不必要的操作,减轻了服务器对页面解析的负担。

与其他系统相比,本系统有自身的优点,

例如:

(1)创新性强;

(2)业务逻辑性强,安全性高,在一些重要的功能模块需要通过审查之后才可使用;

(3)移植性高,在所有window平台都可使用。

当然也还有很多需要进一步改进的地方:

(1)系统大多数页面都是全局刷新,缺乏局部刷新,这将增加服务器的压力,如果有大量用户在同一时间段操作同一个功能模块,可能会导致查询缓慢;

(2)页面没有经过专业的UI设计,美观程度不及其他市场其他网站系统,有待改善。

参考文献

[1]杨孙超.从数字阅读的变迁看待电子墨水屏技术的发展[J].科技资讯,2021,19(03):207-209.

[2]周瑞莺,陈黄焱. 全媒体时代基于电子书阅读器的阅读推广服务探析[C]//中国图书馆学会年会论文集(2020年卷).,2020:336-340.

[3]余丽娜.基于Android的多功能在线阅读的设计与实现[J].信息通信,2019(08):199-200.

[4]祝洁莉,王细荣.掌阅iReader电子阅读器及其打开国内市场分析[J].新闻传播,2019(14):186-187.

[5]陈东升.亚马逊推出全新Kindle电子阅读器[J].计算机与网络,2019,45(07):31.

[6]黄燕妮.Kindle电子书阅读器在公共图书馆的使用情况调查分析——以厦门市图书馆为例[J].四川图书馆学报,2019(05):60-64.

[7]寇惠云.在吸阅读技术发展综述[J].中国高新区,2019(11):16+26.

[8]张洁.电子书阅读界面在移动互联网时代的设计路线[J].数字技术与应用,2019,36(03):147+149.

[9]毛璐娜. 基于多模态信号识别的无障碍电子书阅读器的研究和实现[D].浙江大学,2019.

[10]朱晓宁,王军,郭延红.基于Android下电子书阅读器的技术研究[J].科技视界,2018(33):56+22.

[11]岳贤.互联网大潮下“电纸书”还有人读吗[J].计算机与网络,2018,43(21):18.

[12]余娜.手机+移动互联网大潮下 “电纸书”还有人读吗[J].计算机与网络,2018,43(20):46.

[13]王东.Kindle X咪咕电子书阅读器正式开售[J].计算机与网络,2018,43(18):28.

[14]陈涛.国内电子书阅读器发展现状与前景刍议——以三款电子书阅读器为例[J].山西科技,2018,31(05):95-99.

[15]孙瑞.智能设备中电子阅读APP界面设计研究[J].出版广角,2018(03):49-51.

[16] Kou Huiyun Overview of e-book reader technology development [J] China high tech Zone, 2020 (11): 16 + 26

[17] Zhang Jie Design ruta de la interfaz de lectura de libros electrónicos en la era de Internet móvil [J] Tecnología y aplicación digital, 2019,36 (03): 147 + 149

gracias

Después de varios meses de arduo trabajo, finalmente terminé este artículo. Encontré muchas dificultades en el proceso de redacción e investigación del artículo, y las resolví con la ayuda de mis compañeros y maestros. En particular, estoy muy agradecido a mi amado maestro, quien me brindó orientación y ayuda desinteresada y se tomó la molestia de ayudarme a revisar el artículo. Me he beneficiado mucho de la actitud académica rigurosa del profesor, el conocimiento académico profundo, la dedicación docente incansable y el comportamiento tolerante. Además, cuando busqué materiales en la biblioteca de la escuela, los maestros de la biblioteca también me brindaron muchos aspectos de apoyo y ayuda. Aquí, me gustaría expresar mi más sincero agradecimiento a los profesores que me han ayudado y guiado. Gracias a todos los académicos involucrados en este artículo. Este artículo cita la literatura de varios académicos. Sin la ayuda y la inspiración de los resultados de investigación de varios académicos, sería difícil para mí completar la redacción de este artículo. Gracias a mis compañeros de clase, amigos y colegas de mi unidad, quienes me brindaron una gran cantidad de materiales y ayuda en el proceso de redacción del artículo, y también brindaron una ayuda entusiasta en el proceso de redacción y composición tipográfica del artículo. Al mismo tiempo, me gustaría agradecer a mis compañeros de cuarto por su guía y ayuda entusiastas. A menudo tengo cosas que no entiendo porque todos me ayudaron, lo que me permitió completar este artículo con relativa facilidad. Debido a mi nivel limitado, es inevitable que haya deficiencias en los artículos que he escrito. ¡Pido sinceramente a todos los profesores y alumnos que me critiquen y corrijan!

Me gusta+Favorito+Seguir → mensaje privado para recibir el código fuente y la base de datos

Supongo que te gusta

Origin blog.csdn.net/weixin_61498557/article/details/131410322
Recomendado
Clasificación