[diseño de graduación de java] Diseño e implementación del sistema de microblog de arquitectura BS basado en javaEE + SSM + MySql (tesis de graduación + código fuente del programa) - Sistema de microblog de arquitectura BS

Diseño e implementación de sistema de microblog de arquitectura BS basado en javaEE+SSM+MySql (tesis de grado + código fuente del programa)

Hola a todos, hoy les presentare el diseño e implementación del sistema de microblog de arquitectura BS basado en javaEE+SSM+MySql, al final del artículo se adjunta la dirección de descarga de la tesis y el código fuente de este proyecto de graduación. Los amigos que necesiten descargar la plantilla PPT del informe de apertura y la plantilla PPT de la defensa de tesis, etc., pueden ingresar a la página de inicio de mi blog y verificar el método de descarga por autoservicio en la columna inferior a la izquierda.

Directorio de artículos:

1. Introducción del proyecto

  1. Como plataforma para intercambiar y compartir información, Weibo es particularmente importante en esta era de la información. Las personas pueden buscar y publicar información a voluntad para obtener la consulta más reciente y actual, y su oportunidad y alta interacción lo hacen popular entre las personas. Con la popularidad de Weibo entre los internautas, se han formado gradualmente efectos de microblog como celebridades de Internet y palabras candentes de Internet. El sistema de microblog adopta la arquitectura B/S para realizar las funciones básicas originales de microblog. En el sistema Weibo anterior, agregamos recompensas por preguntas, adoptamos puntos y otras funciones nuevas para mejorar la experiencia del usuario, y realizó una gestión integral de Weibo y usuarios en segundo plano.En términos de tecnología de implementación, la página utiliza JSP, javaScript, ajax y otras tecnologías para mejorar La interacción entre la página del sistema y los usos del usuario. el lenguaje Java en segundo plano, el servidor Tomcat se usa como servidor, el marco SSM se usa para realizar funciones específicas y la base de datos Oracle se usa para almacenar datos en la base de datos.
  2. Las funciones principales del sistema de microblog basado en la arquitectura B/S incluyen: inicio y cierre de sesión de usuario, mantenimiento de información de usuario, publicación de microblog, atención de amigos, publicación de preguntas, etc. La estructura del sistema es la siguiente:
    (1) Módulo de usuario:
    realizar la función de inicio de sesión
    , realizar la salida del inicio de sesión del usuario
    , realizar el registro del usuario
    , realizar la modificación de la información del usuario registrado
    (2) Módulo Weibo:
    realizar las funciones de publicación, modificación y ver Weibo,
    darse cuenta de Weibo Los usuarios operativos pueden ver Weibo personal, amigo Weibo, Weibo favorito y otra información, como, volver a publicar, favorito, comentar, eliminar, etc. en Weibo (3) Módulo de amigos: darse cuenta de la atención del usuario, número de seguidores +1 , número de
    fans
    + 1. Dejar de seguir, bloquear usuarios, usuarios de búsqueda de mensajes privados, etc.. (4) Módulo
    Conch: realizar
    preguntas de publicación, responder preguntas, aumentar puntos, etc. gráfico para mostrar Weibo, resultados estadísticos de usuarios, comentarios, caracolas, comentarios, respuestas, etc. Búsqueda de usuarios, prohibición de usuarios Búsqueda de Weibo, eliminación de Weibo Búsqueda de caracolas , eliminación de caracolas






2. Detalles del recurso

Dificultad del proyecto: Dificultad media Escenarios aplicables: Diseño de graduación Documentos de apoyo
sobre temas relacionados Número de palabras: 28461 palabras, 77 páginas Contenido: Conjunto completo de código fuente + tesis de graduación completa + defensa PPT + libro de tareas + video de tutoría + capturas de pantalla en ejecución


3. Palabras clave:

Weibo; arquitectura B/S; java; marco SSM; Oracle;

4. Breve introducción:

Recordatorio: La siguiente es una breve introducción al proyecto de graduación, el código fuente del proyecto y la dirección de descarga de la tesis de graduación completa se encuentran al final del artículo.

Introducción
omitida

Y Sina Weibo aún continúa con su propio efecto de celebridad. Una cuenta ordinaria, sin la atención de los fanáticos, es difícil que otros vean Weibo. Si necesita pedir ayuda en Weibo, no hay una "gran V de celebridades". difícil ser notado por los demás. Si desea buscar ayuda en Weibo, necesita Weibo para brindar más servicios. Y este sistema permite a los usuarios recompensar sus propias preguntas mediante la función de recompensa de puntos, de modo que más usuarios puedan responder sus propias preguntas y obtener la ayuda de más personas.

Capítulo 2 Introducción de tecnologías relacionadas

2.1 Descripción general de la arquitectura Arquitectura
B/S (navegador/servidor, modo navegador/servidor): es un modo de estructura de red que usa el navegador como cliente, usa la tecnología de navegador web gradualmente madura y combina las diversas funciones del navegador, uso el navegador como cliente complejo bajo la arquitectura C/S (Cliente/Servido) anterior, utiliza la arquitectura C/S para unificar el cliente del usuario, concentra las funciones principales del sistema de software en el servidor, actualiza el sistema y el mantenimiento es más simple Los desarrolladores solo necesitan administrar servidores para actualizar y mantener los sistemas de software.Las muchas ventajas que ofrece la arquitectura B/S la convierten en la dirección principal del futuro desarrollo de la informatización.

Modo MVC: Modelo (Modelo), Vista (Vista) y Controlador (Controlador) son un patrón de diseño para el desarrollo de software. El modelo es principalmente responsable de la interacción de datos de la lógica comercial separada, la Vista es principalmente responsable del envío y visualización de datos, y el Controlador Principalmente responsable de la obtención de solicitudes y reenvío de solicitudes.

Marco SSM (SpringMVC+Spring+Mybatis): El marco de proyectos web compuesto por estos tres marcos de código abierto es un modelo MVC estándar. Spring MVC es responsable del reenvío de solicitudes y la gestión de vistas. Spring implementa la gestión de objetos comerciales y el control de transacciones. Mybatis sirve como motor de persistencia En comparación con el marco SSH (Struts+Spring+Hibernate) popular anterior, SSM, como un marco ligero, es más adecuado para desarrollar proyectos pequeños y medianos.

2.2 Introducción a tecnologías clave
Tecnología front-end:
1. JSP (Java Server Pages): páginas HTML incrustadas con códigos java, esencialmente un servlet, que implementa la extensión de códigos java en la sintaxis de htmld, usando el formato <% %> .

2. JavaScript: es un lenguaje de secuencias de comandos débilmente tipificado, que consta de tres partes: ECMAScript describe los objetos básicos y la sintaxis de JavaScript, el modelo de objetos del documento (DOM) y el modelo de objetos del navegador (BOM).

3. Ajax (Javascript y XML asíncronos): JavaScript y XML asíncronos, realiza una interacción asíncrona entre el anverso y el reverso, y actualiza parcialmente parte del contenido de la página sin recargar toda la página.

Tecnología de fondo:
1.java: un lenguaje de programación orientado a objetos, las características principales incluyen: (1) Simplicidad: abandonando la sintaxis compleja y la herencia múltiple de punteros en C++, los desarrolladores no necesitan prestar atención a la optimización subyacente, solo necesitan prestar atención a la lógica empresarial está bien, (2) orientado a objetos, para programadores, solo necesitan prestar atención a los datos correspondientes y al método de procesamiento de datos, y no necesitan escribir código estrictamente de acuerdo con el proceso, porque el lenguaje java está orientado a objetos, por lo que también tiene las tres características principales de orientación a objetos, herencia, encapsulación y polimorfismo, (3) multiplataforma, la multiplataforma del lenguaje java también es multiplataforma de JVM (máquina virtual java). Después de compilar el archivo Java, no generará directamente el archivo binario que la máquina ejecuta directamente, sino que lo compilará en un archivo de clase. La JVM generará el archivo binario del sistema correspondiente de acuerdo con la JVM en diferentes sistemas operativos. solo necesita compilarse una vez y puede ejecutarse en diferentes plataformas.

2. SpringMVC: Es un módulo provisto por el framework Spring, que simplifica el desarrollo Web implementando el patrón MVC para separar datos, negocios y presentación. Al igual que otros marcos MVC, es impulsado por solicitudes y controla el reenvío. Su Servlet central es DispatcherServlet, que es el controlador frontal, que se utiliza para distribuir solicitudes al controlador. Está completamente integrado con el marco Spring. Esto también hace que SpringMVC sea un framework MVC muy popular.

3. Spring: un marco de desarrollo Java ligero, Spring Framework tiene una arquitectura en capas, por lo que puede usar cualquier parte independiente de Spring. Y su arquitectura sigue siendo intrínsecamente estable. Spring proporciona soluciones para cada capa de aplicaciones J2EE, que se ejecutan a través de cada capa de la arquitectura de tres niveles, pero Spring sigue siendo muy compatible con otros marcos. Este proyecto utiliza principalmente el IOC en Spring (Inversión de Control) y módulos AOP (Programación Orientada a Aspectos).

4. Mybatis: es un marco ligero de código abierto que simplifica la capa de persistencia de Java. Y es compatible con el mapeador de anotaciones, Mybatis elimina la mayor parte del código JDBC, lo que facilita el proceso de persistir objetos Java en la base de datos. En comparación con otros marcos de persistencia de Java, Mybatis tiene la ventaja de eliminar gran parte de la redundancia de JDBC. El resto del código Las sentencias Sql visibles, fáciles de aprender y fáciles de aprender brindan integración con Spring e introducen un mejor rendimiento.

2.3 Herramienta de desarrollo
Servidor Tomcat: es un servidor de aplicaciones web, es liviano y de código abierto, es la primera opción para proyectos web pequeños y medianos y desarrollo, depuración y aprendizaje.

Base de datos Oracle (Oracle Database): es una base de datos relacional desarrollada por Oracle Corporation. Es la primera base de datos relacional para aplicaciones comerciales. El sistema es fácil de usar, potente y altamente portátil. Es adecuado para varios entornos grandes, medianos y pequeños. En la era de los grandes datos, como base de datos distribuida, realiza la función de procesamiento distribuido, con funciones completas de administración de datos, bases de datos relacionales completas y funciones de procesamiento distribuido.

Herramienta de desarrollo de Eclipse: una plataforma de desarrollo extensible basada en código abierto de Java, que incluye no solo un entorno de desarrollo integrado de Java, sino también un entorno de desarrollo de complementos, como SVN, CVS y otros equipos para desarrollar complementos.

2.4 Resumen de este capítulo
Este capítulo presenta principalmente algunas de las principales tecnologías utilizadas en el proyecto de desarrollo, la arquitectura y los patrones de diseño utilizados en el proyecto, las principales tecnologías de marco utilizadas en el proyecto, la tecnología front-end y los métodos de visualización utilizados en el visualización del proyecto en el lado del navegador, el lenguaje de desarrollo utilizado por el código de fondo, la tecnología de servidor utilizada, la base de datos utilizada por la capa de persistencia de datos, etc., y las herramientas de desarrollo utilizadas para el desarrollo se presentan al final de este capítulo.

Capítulo tres Análisis de los requisitos del sistema

3.1 Análisis de factibilidad
3.1.1 Factibilidad técnica
En términos de las tecnologías existentes, para unificar el cliente y eliminar la complejidad causada por las actualizaciones de versión y el mantenimiento, es completamente factible adoptar una arquitectura B/S madura en la realización del proyecto. En términos de lenguajes y marcos de desarrollo, los potentes sistemas java y j2ee permiten a los desarrolladores crear cuidadosamente proyectos web, y una serie de marcos de trabajo de código abierto brindan una base sólida para la viabilidad del proyecto. Se utiliza el servidor Tomcat, es suficiente para admitir el uso normal de este pequeño proyecto, y la tecnología de front-end y el marco de front-end en constante desarrollo pueden crear hermosas páginas de front-end y mejorar la experiencia del usuario y la interacción. Esto es completamente factible en el La persistencia de los datos del proyecto proporciona un respaldo sólido. En resumen, los sistemas java y j2ee cada vez más maduros, el marco y el servidor java de código completamente abierto, la potente base de datos relacional y el uso de tecnología web front-end para proporcionar páginas de interacción con el usuario, por lo que el proyecto es técnicamente factible.

3.1.2 Viabilidad económica
Omitir

3.1.3 Factibilidad Operacional
Omitir

3.2 Análisis de requisitos
3.2.1 Requisitos generales del sistema
El sistema Weibo se compone principalmente del módulo de usuario front-end y el módulo de administración de fondo. Cuando el usuario ingresa a la página de inicio, puede elegir iniciar sesión o no. Al iniciar sesión, puede iniciar sesión con una cuenta existente o registrar una nueva cuenta. Cuando el usuario no ha iniciado sesión, el Weibo popular recientemente actualizado se muestra en la página de inicio, y el usuario que ha iniciado sesión puede ver el Weibo recientemente actualizado del usuario al que sigue en la página de inicio.

Los usuarios que no hayan iniciado sesión solo pueden buscar y ver información de Weibo y visitar las páginas de inicio de los usuarios. Los usuarios que hayan iniciado sesión pueden modificar su información básica, como firma, género, etc. después de iniciar sesión en el sistema, y ​​también pueden modificar contraseñas e información confidencial. después de verificar la información del usuario. Además de modificar el avatar y la contraseña del usuario, editar su propia página de inicio personal, dar me gusta, comentar, marcar y otras funciones en Weibo, también puede seguir/dejar de seguir a los usuarios, bloquear usuarios, usuarios de chat privado y otras operaciones.

El administrador de fondo puede ver todos los datos del sistema, incluidos los usuarios, microblogs, comentarios, conchas, la cantidad total de respuestas, la última base de datos y la cantidad de datos en la última semana. Las funciones específicas incluyen la gestión de información incorrecta de Weibo y cuentas incorrectas, eliminación y restauración de Weibo, comentarios de Weibo, concha, respuestas y otra información, y bloqueo de cuentas incorrectas.

Módulo de búsqueda de microblogs: los usuarios pueden ingresar palabras clave para encontrar los microblogs o usuarios correspondientes.
Módulo de publicación de microblog: el usuario hace clic en publicar y agrega el contenido que desea enviar en el contenido. Puede elegir emoticones o insertar imágenes, pero hay un límite en la cantidad de caracteres ingresados, y también puede insertar un imagen al mismo tiempo.

Módulo de comentarios de Weibo, los usuarios pueden ver los comentarios de Weibo, publicar comentarios de Weibo, etc.

Módulo Magic Conch: los usuarios pueden publicar una caracola mágica, que se utiliza principalmente para registrar varias preguntas planteadas por los usuarios, y otros usuarios pueden ver y responder preguntas. Cuando el interrogador adopta la respuesta del encuestado, el encuestado puede agregar la suya propia. Puntos de caracola, diferentes puntos de caracola tienen diferentes títulos de caracola.

Módulo de puntos: los usuarios pueden aumentar sus puntos iniciando sesión todos los días, publicando Weibo, haciendo tareas, etc. Los puntos diferentes tienen títulos diferentes. Los puntos del módulo de la caracola mágica tienen títulos diferentes, y los títulos se muestran detrás del nombre del usuario.

Módulo de amigos: los usuarios pueden ver a otros usuarios en el sistema, encontrar a sus usuarios favoritos y seguirlos. Después de seguirlos, pueden ver a los usuarios que siguen en el módulo de amigos, así como el Weibo reciente y otra información publicada por amigos. también puede enviar mensajes privados a amigos, enviar Enviar un mensaje privado a un amigo.

3.2.2 Diagrama de Casos de Uso Requerimientos
1. Cuando el usuario ingresa al sistema, puede optar por iniciar sesión o registrarse como usuario, si olvida la contraseña, puede restablecerla a través de la pregunta de seguridad.
inserte la descripción de la imagen aquí

Figura 3.1 Diagrama de caso de uso inicial del usuario

2. Después de que el usuario inicia sesión, puede administrar la información personal básica del usuario, modificar la información básica del usuario y modificar la información confidencial del usuario. Modificar avatar de usuario y otras funciones.
inserte la descripción de la imagen aquí

Figura 3.2 Diagrama de caso de uso de gestión de información de usuario

3. Sistema de gestión de microblogs de usuarios, cuando el usuario inicia sesión en el sistema, puede publicar microblogs en la página de inicio y buscar la información de microblogs de palabras clave en el contenido de microblogs a través de palabras clave. Ver Weibo, incluida la visualización de Weibo personal, Weibo de amigos y Weibo recomendado.
inserte la descripción de la imagen aquí

Figura 3.3 Diagrama de caso de uso de gestión de Weibo

4. Gestión de comentarios, la gestión de comentarios depende del módulo de Weibo, los usuarios pueden ver comentarios en Weibo, publicar comentarios en la información de Weibo y eliminar sus propios comentarios.
inserte la descripción de la imagen aquí

Figura 3.4 Diagrama de caso de uso de gestión de comentarios de Weibo

5. Gestión de caracolas. Después de iniciar sesión, los usuarios pueden publicar preguntas de caracolas en el módulo de caracolas. Al publicar preguntas, pueden elegir la cantidad de puntos de recompensa y reducir sus propios puntos. Los usuarios pueden participar respondiendo las preguntas de caracolas de otras personas. Cuando la respuesta es aceptado, puede obtener la cantidad de puntos recompensados ​​​​por el usuario.
inserte la descripción de la imagen aquí

Figura 3.5 Diagrama de casos de uso de manejo de caracoles

6. Gestión de amigos, cuando el usuario inicia sesión, puede seguir el sistema para recomendar amigos o buscar usuarios, ver la página de inicio del usuario, agregar o dejar de seguir a los usuarios, enviar mensajes privados a los usuarios o bloquear a los usuarios.
inserte la descripción de la imagen aquí

Figura 3.6 Diagrama de caso de uso de gestión de amigos

7. Notificación de mensaje, cuando el usuario presta atención, comenta en Weibo, le gusta y le gusta, se llama a la notificación de mensaje.
inserte la descripción de la imagen aquí

Figura 3.7 Diagrama de caso de uso de gestión de amigos

8. Administrador: los administradores pueden administrar los usuarios de Weibo iniciando sesión en el sistema, bloqueando y cancelando las cuentas de los usuarios incorrectos, y también pueden restaurar el estado del usuario. Al mismo tiempo, los administradores también pueden administrar la información de Weibo, como eliminar Weibo, restaurar Eliminar y recuperar comentarios de microblog eliminados por administradores, etc., como se muestra en la Figura 3.2.
inserte la descripción de la imagen aquí

Figura 3.8 Diagrama de caso de uso del administrador

Capítulo 4 Diseño de funciones del sistema
4.1 Análisis de clases del sistema
4.1.1 Clases de entidad
Las clases de entidad se utilizan principalmente para transferir datos, principalmente Usuario, Amigo, PointAction, PointRecord, Weibo, WeiboCollect, WeiboComm, WeiboLike, WeiboTrans, etc. Las clases de usuario incluyen usuario Básico información, la categoría de Weibo incluye la información básica de Weibo y también incluye la categoría de usuario de entidad, la categoría de amigo incluye el número de amigo, la hora de creación del amigo y la categoría de usuario de ambas partes, etc. La clase de colección de microblog incluye atributos de colección como la clase de microblog favorita y la identificación de usuario, la clase de comentario de microblog incluye atributos como la clase de microblog, la clase de usuario y el contenido del comentario, y la clase de reenvío de microblog incluye atributos como la clase de usuario, la clase de microblog y el tiempo de reenvío, la categoría Me gusta de Weibo incluye atributos como categoría de Weibo, categoría de usuario y tiempo similar. La relación de asociación de clases entre clases de entidades se muestra en la Figura 4.1.
inserte la descripción de la imagen aquí

Figura 4.1 Diagrama de clase de capa de frijol

4.1.2 La clase de controlador
incluye cuatro clases de JAVA MainController, WeiboController, FrendController y AdminController en la capa de controlador En el marco SpringMVC, se utiliza principalmente para recibir la solicitud enviada por el navegador al servidor y procesar los datos y controlar el reenvío de la solicitud Los datos obtenidos son respondidos al navegador. MainController se utiliza principalmente para recibir formularios o solicitudes de enlaces enviadas desde páginas relacionadas con el usuario, y pasar los parámetros solicitados al método correspondiente en el controlador, llevar la respuesta de datos al navegador y mostrar los datos, atributos y métodos específicos en el navegador. lateral Como se muestra en la Figura 4.2.
inserte la descripción de la imagen aquí

Figura 4.2 Diagrama de clases del controlador de usuario

WeiboController se utiliza principalmente para recibir solicitudes de formularios o enlaces enviadas desde páginas relevantes de Weibo, pasar los parámetros solicitados a los métodos correspondientes en el Controlador, obtener los datos devueltos en la capa de procesamiento comercial y enviar la respuesta de datos al navegador, para mostrar datos. en el lado del navegador, las propiedades y métodos específicos se muestran en la Figura 4.3.
inserte la descripción de la imagen aquí

Figura 4.3 Diagrama de clase del controlador de Weibo

FriendController se utiliza principalmente para recibir formularios o solicitudes de enlaces enviadas desde páginas relacionadas con amigos, y pasar los parámetros solicitados al método correspondiente en el Controlador, y obtener los datos devueltos en la capa de procesamiento comercial, y llevar la respuesta de datos al navegador. para mostrar datos en el lado del navegador, las propiedades y métodos específicos se muestran en la Figura 4.4.
inserte la descripción de la imagen aquí

Figura 4.4 Diagrama de clase de controlador amigo

AdminController se utiliza principalmente para recibir solicitudes de formularios o enlaces enviadas desde páginas relevantes del administrador, pasar los parámetros solicitados al método correspondiente en el controlador, obtener los datos devueltos en la capa de procesamiento comercial y llevar la respuesta de datos al navegador. El navegador muestra datos en el lado del navegador.Las propiedades y métodos específicos se muestran en la Figura 4.5.
inserte la descripción de la imagen aquí

Figura 4.5 Diagrama de clase del controlador de administración

4.1.3 Clase de lógica comercial
La capa de servicio incluye principalmente cuatro interfaces de servicio y sus clases de implementación, incluido IUserService, que se utiliza para manejar los negocios de los usuarios, como el registro de usuarios, el inicio de sesión y la modificación de información personal, como se muestra en la Figura 4.6. IWeiboService se usa para manejar negocios relacionados con Weibo, como buscar Weibo, publicar Weibo, eliminar Weibo y operaciones relacionadas en Weibo, como me gusta y comentarios, como se muestra en la Figura 4.7. IFriendService se usa para manejar negocios relacionados con los amigos de los usuarios, como me gusta, cancelar me gusta, mensajes privados, listas negras y otras funciones, como se muestra en la Figura 4.8. IAdmoinService se utiliza para gestionar negocios relacionados con los administradores, como el inicio de sesión del administrador, la visualización de gráficos, la gestión de usuarios, la gestión de Weibo y las funciones de gestión de conchas, como se muestra en la Figura 4.8.
inserte la descripción de la imagen aquí

Figura 4.6 Diagrama de clase de procesamiento empresarial de usuario

inserte la descripción de la imagen aquí

Figura 4.7 Diagrama de clase de procesamiento comercial de Weibo
inserte la descripción de la imagen aquí

Figura 4.8 Diagrama de clase del controlador de Weibo

4.1.4 Clase de interacción de la base de datos
Dado que el sistema adopta el marco de persistencia de MyBatis, los desarrolladores no necesitan prestar atención al código JDBC específico entre la base de datos y la base de datos, sino que solo necesitan procesar la lógica comercial, por lo que solo necesitan declarar métodos en la interfaz de capa Dao sin escribir La clase de implementación de la interfaz implementa el método configurando el archivo de configuración correspondiente y escribe la instrucción SQL en el método de interfaz correspondiente en el archivo de configuración para interactuar con la base de datos.

4.2 Diseño clave del negocio
4.2.1 Sistema de inicio de sesión
inserte la descripción de la imagen aquí

Figura 4.9 Diagrama de secuencia de inicio de sesión del sistema

Después de que el usuario ingresa a la página de inicio, puede seleccionar un usuario registrado a la izquierda o iniciar sesión en el sistema a la derecha. En el módulo de registro, el usuario ingresa la dirección de correo electrónico, la contraseña, el apodo y otra información del usuario. Cuando el usuario ingresa la dirección de correo electrónico, la dirección de correo electrónico ingresada por el usuario se enviará a un segundo plano a través de Ajax. Verifique si la dirección de correo electrónico del usuario ha sido registrada. Si está registrada, se le indicará al usuario en la página que la dirección de correo electrónico ha sido registrada. registrado Después de ingresar la información básica y hacer clic en Registrar, se guardará la información de registro del usuario.

Función de inicio de sesión, cuando el usuario ingresa la dirección de correo electrónico y la contraseña, si el usuario hace clic en la siguiente contraseña de inicio de sesión automática, después de hacer clic en el inicio de sesión, se juzga si la hora de inicio de sesión actual del usuario y la última hora de inicio de sesión son el mismo día, si no , agregue la hora de inicio de sesión para los Puntos de usuario y luego salte a la página de inicio de Weibo.

4.2.1 Sistema de información del usuario
inserte la descripción de la imagen aquí

Figura 4.10 Diagrama de secuencia de información de modificación de usuario

Información básica del usuario: después de hacer clic en la configuración de la cuenta personal en la página de inicio del sistema, saltará a la página de modificación de la información básica del usuario, donde el usuario puede modificar esta información básica y guardar la información modificada en la base de datos.

Cambiar contraseña: haga clic en Cambiar contraseña en la página de perfil de usuario, salte a la página de cambio de contraseña, el usuario puede ingresar la contraseña actual del usuario, el sistema juzga si la contraseña es correcta, si la contraseña es incorrecta, mostrará el cara a -frente al error de contraseña, si la contraseña es correcta, el usuario puede ingresar una nueva contraseña y hacer clic en Modificar para actualizar la contraseña modificada en la base de datos.

Modificar avatar de usuario: haga clic para modificar el avatar en el perfil de usuario, salte a la página para modificar el avatar, el usuario selecciona el archivo de avatar, hace clic en cargar y el avatar de usuario se guarda en el servidor. avatar es el avatar predeterminado del sistema, y ​​si no, elimine el usuario Para la imagen de avatar anterior, haga clic en Modificar para guardar la dirección de avatar modificada en la base de datos.

Modificar contraseña: el usuario primero debe completar la respuesta de acuerdo con la pregunta de seguridad establecida previamente. Si la respuesta de seguridad es incorrecta, se le indicará al usuario que la respuesta de seguridad es incorrecta. Si la respuesta de seguridad es correcta, el usuario puede ingresar una nueva pregunta y respuesta de seguridad Haga clic en Modificar para guardar la nueva pregunta y respuesta de seguridad del usuario.

4.2.2 Módulo Weibo
inserte la descripción de la imagen aquí

Figura 4.11 Diagrama de secuencia de inicio de sesión del sistema

Publicar Weibo: los usuarios pueden publicar Weibo en la página de inicio, insertar emoticonos en la información de Weibo o elegir insertar una imagen. Cuando el usuario hace clic en publicar, el navegador envía una solicitud para cargar la información de Weibo y la información de la imagen en el formulario de la página principal Pase en el controlador de fondo, guarde la información de la imagen en el servidor, guarde solo la ruta de la imagen en la base de datos y finalmente guarde la información de Weibo en la base de datos.

Buscar Weibo: los usuarios pueden ingresar el contenido mencionado en Weibo en el cuadro de búsqueda en la página de inicio para buscar, y el sistema consultará la información relacionada de Weibo en la base de datos a través de consultas difusas. Muestre las páginas buscadas en la página y muestre las palabras clave en rojo.

Operaciones de Weibo: los usuarios pueden ver Weibo personal, Weibo de amigos, Weibo favorito y otra información, como, volver a publicar, marcar como favorito, comentar, eliminar, etc. en Weibo.

4.2.3 Módulo de amigos
Función de seguimiento: cuando el usuario inicia sesión en el sistema, puede elegir el usuario a seguir de los usuarios recomendados en el lado derecho de la página, o buscar usuarios a través de la función de búsqueda en la página, y seguir los usuarios buscados. Después de seguir al usuario, la atención personal +1 y el número de fans del usuario seguido +1.

Dejar de seguir: y seguir el tipo de función, haga clic en mis amigos en la barra de navegación, verifique a mis amigos en la página de inicio de mis amigos, puede verificar todos los amigos que sigo, la cantidad de amigos y su información personal, haciendo clic en El correspondiente dejar de seguir puede dejar de seguir Después de dejar de seguir al usuario, el número de seguidores personales es -1 y el número de seguidores del usuario seguido es -1.

Bloqueo de usuarios: es para modificar el estado de registro correspondiente en la tabla de amigos, y los mensajes privados y la información de Weibo publicada por los usuarios bloqueados no serán vistos por los usuarios bloqueados.

Mensajes privados: puede ver la cantidad de mensajes privados no leídos del usuario que inició sesión actualmente en el usuario recomendado en la página. La cantidad de mensajes privados no leídos pasará a través de la base de datos para todos los mensajes privados de todos los destinatarios de la sesión actual. en usuario, y el estado de la información es no leído.El valor obtenido se muestra en la página frontal.

Enviar mensaje privado: El usuario primero selecciona el usuario a enviar, ingresa la información del mensaje privado a enviar y puede insertar emoticonos en el mensaje privado.Después de hacer clic en enviar, la información del mensaje privado se enviará al usuario correspondiente. Al mismo tiempo, aumente la cantidad de mensajes privados no leídos que solicitan al usuario.

Buscar usuarios: en la página de búsqueda de usuarios, los usuarios pueden ingresar palabras clave de apodos de usuarios para buscar usuarios relevantes, mostrar los usuarios consultados en la página y marcar las palabras clave ingresadas por los usuarios en rojo.

Página de inicio del usuario: en la página, al hacer clic en el nombre o la imagen de perfil de cualquier usuario, se saltará a la página de inicio personal del usuario correspondiente. La página de inicio personal del usuario muestra la información personal del usuario y el último Weibo del usuario, organizados en orden cronológico inverso, y el usuario también puede Utilice los me gusta, reenvíos, comentarios y favoritos de Weibo.

4.2.4 Publicación del módulo Conch
: el usuario ingresa a la página de inicio de Conch haciendo clic en la concha mágica en la barra de navegación. En la parte superior de la página de Conch está el cuadro de preguntas para publicar la concha, los botones de emoticonos que se pueden insertar debajo y los puntos de recompensa. para las preguntas y la barra de navegación en el medio Puede elegir ver la última versión, resuelto, por resolver, mi concha diferentes condiciones de filtro.

Ver preguntas de Conch: cuando el usuario hace clic en cualquier pregunta de Conch, el sistema salta a una página que muestra la información específica de Conch. El nombre de usuario, el nombre de usuario, la fecha de lanzamiento, la pregunta de Conch, los puntos de recompensa, el estado de la pregunta, etc. el usuario que publica se muestra en la parte superior y en el medio Toda la información de respuesta a la pregunta, el nombre de usuario de la persona que responde, el título, el contenido de la respuesta, la fecha de respuesta, si se acepta, etc.

Responder preguntas de caracolas: puede responder preguntas de caracolas en la parte inferior de la página de información detallada de preguntas de caracolas, ingresar la respuesta en el cuadro de entrada, insertar información de emoticones, etc., y hacer clic en responder para guardar la información de respuesta en la base de datos.

Acepte la respuesta a la pregunta: En la página de inicio de Preguntas de la caracola, los usuarios pueden saltar a la página de Preguntas de la caracola publicada por el usuario haciendo clic en Mis preguntas de la caracola. En la página de Preguntas de la caracola publicada por ellos mismos, pueden elegir la respuesta que creen que es la más correcta Después de hacer clic en Aceptar Modificar el estado de la concha, la respuesta aceptada se convierte en la respuesta aceptada y los puntos de la concha del adoptante aumentan.

4.2.5 Módulo de administrador en segundo plano
Inicio de sesión del administrador: los administradores pueden hacer clic en Inicio de sesión del administrador en la página de inicio de sesión para ir a la página de inicio de sesión del administrador. Después de que el administrador ingrese la información de la cuenta y la información de la contraseña, si el nombre de usuario y la contraseña son correctos, saltará a la página de inicio del administrador. Indicar si está mal.

Página de inicio del administrador: la barra de navegación se muestra en la parte superior de la página de inicio del administrador. En cuanto al contenido de la página, se utilizan cuatro gráficos para mostrar el número total de Weibo, usuarios, comentarios, caracolas, comentarios, respuestas, etc. y el número de el mes actual El gráfico de barras a continuación Muestra el número de los últimos 7 días a partir de hoy.

Página de inicio de administración de usuarios: muestra la barra de navegación en la parte superior de la página y el contenido de la página muestra todos los ID de usuario, direcciones de correo electrónico, apodos, fechas de registro, fechas de último inicio de sesión y estado del usuario. Teniendo en cuenta la gran cantidad de usuarios y la conveniencia de buscando, los 10 datos de usuario se muestran en la página a la vez, y se agrega una función de búsqueda de usuario al mismo tiempo.Los usuarios pueden buscar usuarios después de ingresar las palabras clave del apodo del usuario y admiten consultas vagas. Buscar usuarios: ingrese las palabras clave en el apodo del usuario en la página de administración de usuarios para buscar usuarios, y el sistema mostrará la parte de la información del usuario obtenida donde el apodo es la palabra clave de entrada en rojo.

Prohibición de usuarios: el administrador puede hacer clic en el botón de prohibición en la columna de operación de la página de administración de usuarios para prohibir al usuario infractor. El administrador puede ingresar el número de días para la prohibición. Antes de esta fecha, el usuario no puede iniciar sesión normalmente, y el el administrador puede Desbloquear usuarios por adelantado haciendo clic en Desbloquear.

Página de inicio de administración de Weibo: los administradores hacen clic en Administración de Weibo en la barra de navegación, el sistema saltará a la página de administración de Weibo del usuario, mostrando la información de Weibo utilizada en el sistema, los administradores también pueden ingresar palabras clave en el contenido de Weibo Buscar Weibo, y al mismo tiempo , puede eliminar Weibo con información incorrecta o restaurar el Weibo eliminado.

Búsqueda de microblog: los administradores pueden buscar microblogs con la palabra clave en el contenido del microblog ingresando palabras clave en el contenido del microblog, y las palabras clave en el contenido del microblog buscado se marcarán en rojo.

Eliminación de Weibo: en la página de administración de Weibo, el administrador puede juzgar si Weibo es ilegal o no de acuerdo con el contenido de Weibo. Si la información de Weibo contiene información incorrecta, el administrador puede eliminar Weibo a través del botón Eliminar en la barra de operaciones. También puedes restaurar los microblogs eliminados.

Página de inicio de Gestión de caracolas: El administrador hace clic en Gestión de caracolas en la barra de navegación para ir a la página de Gestión de caracolas. La barra de navegación se encuentra en la parte superior de la página y el contenido de la página muestra toda la información de caracolas, el cuadro de búsqueda de caracolas y el cuadro de paginación. a continuación, información de la caracola Incluya el número, el nombre del editor, de qué se trata la caracola, la fecha en que se publicó, el estado de la caracola y qué acciones puede tomar.

Búsqueda de caracolas: en la página de inicio de Conch Management, considerando la gran cantidad de caracolas, es difícil encontrar el problema, por lo que la función de búsqueda está configurada. El administrador puede ingresar las palabras clave en el contenido de caracolas en el cuadro de búsqueda de caracolas para buscar para el problema de la concha En la búsqueda de pantalla Cuando se obtienen los resultados, las palabras clave de búsqueda se marcarán en rojo para facilitar su visualización.

4.3 Diseño de la base de datos
4.3.1 Descripción general
La tabla de la base de datos del sistema Microblog incluye principalmente:
1. Tabla de usuarios: se utiliza para almacenar información personal del usuario, como número, apodo, nombre y contraseña. Para el buzón y otra información, use el número de usuario como clave principal, como se muestra en la Tabla 4-1.

2. Tabla de seguidores de microblog: se utiliza para guardar la información de seguidores del usuario, con el ID de seguidor como clave principal, como se muestra en la Tabla 4-2.

3. Tabla de Weibo: se utiliza para guardar la información de Weibo, como la hora de lanzamiento de Weibo, el contenido de Weibo, los me gusta de Weibo, los retweets, la cantidad de favoritos, etc., con el número de Weibo como clave principal, como se muestra en la Tabla 4-3.

4. Tabla de recopilación de microblog: se utiliza para guardar la información de microblog recopilada por los usuarios, como el número de microblog, la hora de recopilación, etc., con el número de recopilación como clave principal, como se muestra en la Tabla 4-4.

5. Tabla de comentarios: guarde la información de los comentarios de Weibo, como la ID del comentarista, la fecha del comentario, el contenido del comentario, etc., con la ID del comentario como clave principal, como se muestra en la Tabla 4-5.

6. Tabla de puntos: se utiliza para guardar la forma en que los usuarios obtienen puntos, como la obtención de puntos a través del inicio de sesión diario y la publicación de Weibo, etc., con el número de punto como clave principal, como se muestra en la Tabla 4-6.

7. Tabla de Me gusta: se utiliza para guardar la información de Me gusta de Weibo, que incluye principalmente el número de Me gusta, el número de Me gusta, el número de Me gusta de Weibo y otra información. Utilice el número similar como clave principal, como se muestra en la Tabla 4-7.

8. Tabla de flujo de puntos: se utiliza para guardar la información de los puntos obtenidos por los usuarios, que incluye principalmente el número de punto, el número de usuario, la fecha de adquisición y otra información, con el número de punto como clave principal, como se muestra en la Tabla 4-8.

9. Tabla de reenvío: se utiliza para guardar la información enviada por el usuario, que incluye principalmente el número de reenvío, la persona que reenvía, el número de Weibo y otra información, con el número de reenvío como clave principal, como se muestra en la Tabla 4-9.

4.3.2 Diseño conceptual
Un usuario puede publicar varios microblogs, por lo que existe una relación de uno a muchos entre la tabla de usuarios y la tabla de microblogs, como se muestra en la Figura 4.12.
inserte la descripción de la imagen aquí

Figura 4.12 Correspondencia entre tabla de usuario y tabla de Weibo

Un microblog puede corresponder a múltiples Me gusta, reenvíos, favoritos y comentarios, por lo que existe una correspondencia de uno a muchos entre la tabla de microblog y las tablas de favoritos, Me gusta, reenvíos y favoritos, como se muestra en la Figura 4.13.
inserte la descripción de la imagen aquí

Figura 4.13 Correspondencia entre tabla de Weibo y tabla de operaciones de Weibo

Un usuario puede publicar varias caracolas, y cada pregunta de caracola puede corresponder a varios comentarios. Como se muestra en la Figura 4.14.
inserte la descripción de la imagen aquí

Figura 4.14 Correspondencia entre mesa usuario y mesa concha

4.3.3 Tabla de base de datos
1. Tabla de usuario: nombre de tabla de base de datos USER_TAB, nombre de secuencia de referencia SEQ_USER.

Tabla 4-1 Tabla de usuarios
inserte la descripción de la imagen aquí

2. Tabla de preocupaciones: tabla de base de datos FRIEND_TAB, nombre de secuencia de referencia SEQ_FRIEND.

Tabla 4-2 Formulario de preocupaciones
inserte la descripción de la imagen aquí

3. Tabla Weibo: el nombre de la tabla de la base de datos es WEIBO_TAB y el nombre del índice de referencia es SEQ_WEIBO.

Tabla 4-3 Tabla Weibo
inserte la descripción de la imagen aquí

4. Tabla de colección: nombre de tabla de base de datos COLLECT_TAB, nombre de índice de referencia SEQ_COLLECT.

Cuadro 4-4 Cuadro de recogida
inserte la descripción de la imagen aquí

5. Tabla de comentarios: nombre de tabla de base de datos COMM_TAB, nombre de índice de referencia SEQ_COMM.

Tabla 4-5 Formulario de comentarios
inserte la descripción de la imagen aquí

6. Tabla integral: nombre de tabla de base de datos INTEGRAL_TAB, nombre de índice de referencia SEQ_INTEGRAL.

Tabla 4-6 Tabla integral
inserte la descripción de la imagen aquí

7. Me gusta la tabla: nombre de la tabla de la base de datos LIKE_TAB, nombre del índice de referencia SEQ_LIKE.

Tabla 4-7 Me gusta tabla
inserte la descripción de la imagen aquí

8. Tabla de flujo integral: nombre de tabla de base de datos RECORD_TAB, nombre de índice de referencia SEQ_RECORD.

Tabla 4-8 Medidor de flujo integral
inserte la descripción de la imagen aquí

9. Tabla de reenvío: nombre de tabla de base de datos TRANS_TAB, nombre de índice de referencia SEQ_TRANS.

Tabla 4-9 Tabla de reenvío
inserte la descripción de la imagen aquí

Capítulo 5 Realización de funciones del sistema

5.1 Sistema de inicio de sesión
En la página de registro de inicio de sesión del sistema, cuando el usuario ingresa al buzón, el buzón se enviará al controlador de fondo a través de Ajax, y se llamará al método correspondiente en la capa de Servicio.La interfaz de la capa Dao se llama en el Servicio método para averiguar si el buzón de correo del usuario se ha registrado. Si está registrado, se mostrará en la página a través de javaScript front-end para indicarle al usuario que el buzón se ha registrado. Después de ingresar la información básica y hacer clic en registrarse, el la información de registro ingresada por el usuario se enviará al controlador de fondo a través del navegador, y el controlador controlará la solicitud. Reenviar la página y pasar la información de registro del usuario al Servicio, inicializar alguna información básica del usuario en el Servicio, como como avatar predeterminado, estado predeterminado, inicializar puntos de usuario y otras operaciones, ensamblar la fuente de datos del usuario y llamar al método de capa Dao para guardar la información de registro del usuario como se muestra en la figura 5.1. El código central es el siguiente:

user.setRegisterTime(nowDate());		//使用当前时间作为用户注册时间
	user.setLastLogin(nowDate());
	user.setBirthday("2017-1-1");
	User addUser = addIntegral(user, Constant.REGISTER);		//增加用户积分
	action = userDao.findIntegral(Constant.REGISTER);		//查找注册操作得到的PointAction
	record = new PointRecord(action, addUser.getEmail(), nowDate());
	addIntegralRecord(record);	//保存积分操作
userDao.saveUser(addUser); 	//保存用户注册信息

Función de inicio de sesión, si hace clic en la siguiente contraseña de inicio de sesión automática, después de hacer clic en iniciar sesión, primero pase la información del nombre de usuario y la contraseña a la capa de servicio para el procesamiento comercial y luego llame a la interfaz de la capa Dao para juzgar si la información de la dirección de correo electrónico y la contraseña son correctas Si son correctos y haga clic la próxima vez que inicie sesión, guarde el nombre del buzón y la contraseña en la cookie del navegador, guarde el usuario que inició sesión en la sesión y juzgue si la hora de inicio de sesión actual y la última hora de inicio de sesión del usuario son las mismas. día en el Servicio que procesa el inicio de sesión del usuario, si no es el mismo día, agregue puntos de inicio de sesión para los usuarios, modifique la cantidad de puntos en la base de datos de usuarios y luego salte a la página de inicio de Weibo, como se muestra en la Figura 5.2. El código central es el siguiente:

findUser = userDao.findUserByEmailAndPassword(userId, password);
	if(findUser == null){
    
    
		throw new UserServiceException("用户名或密码错误");
	}else{
    
    
		Date lastLogin = findUser.getLastLogin();	//上次登陆时间
		Date now = nowDate();	//当前时间
		if(lastLogin.getYear()!=now.getYear() || lastLogin.getMonth()!=now.getMonth() || lastLogin.getDate()!=now.getDate()){
    
    
		//判断如果上次登陆时间和这次登陆时间不一样,则为用户增加登陆积分
		findUser=addIntegral(findUser, Constant.LOGIN);	//保存积分
		saveIRecord(findUser, Constant.LOGIN);	//保存积分记录
		findUser.setLastLogin(now);		//将上次登陆时间改为当前时间
		userDao.updateUser(findUser);	//更改用户信息
			}
}

inserte la descripción de la imagen aquí

Figura 5.1 Interfaz de registro e inicio de sesión de usuario
inserte la descripción de la imagen aquí

Figura 5.2 Interfaz de la página de inicio de Weibo

5.2 Sistema de información del usuario
Información básica del usuario: como se muestra en la Figura 5.3, cuando el usuario hace clic para modificar, el navegador enviará el formulario, enviará una solicitud con la información básica del usuario al controlador de SpringMVC para recibir la solicitud y ensamblará el formulario. datos en el formulario en un objeto de usuario, pasado como parámetro al método correspondiente en la capa de servicio para su procesamiento, llamando a la interfaz de la capa Dao para modificar la información básica del usuario y modificar la información del objeto de usuario en la sesión en el servidor actual. El código central es el siguiente:

try {
    
    
		userDao.updateUser(user);
	} catch (DataAccessException e) {
    
    
		throw new UserServiceException("修改失败,请重试!");
	}

inserte la descripción de la imagen aquí

Figura 5.3 Modificar la interfaz de información básica del usuario

Cambiar contraseña: haga clic en cambiar contraseña en la página de perfil de usuario, saltará a la página de cambio de contraseña como se muestra en la Figura 5-4, el usuario puede ingresar la contraseña actual del usuario, la página principal envía una solicitud asíncrona a través de Ajax y el fondo controlador recibe la solicitud, si la contraseña actual del usuario se obtiene de la base de datos es correcta. Si la contraseña es incorrecta, la página principal le indicará dinámicamente al usuario a través de javaScript que la contraseña es incorrecta. Si la contraseña es correcta, el usuario puede ingresar una nueva contraseña y confirmar la nueva contraseña. Haga clic en Confirmar para modificar. El navegador envía el formulario y pasa la nueva contraseña del usuario al método correspondiente en la capa de Servicio en segundo plano. En el método de Servicio, se llama a la interfaz de la capa Dao para cambie la contraseña del usuario en la base de datos y la información del usuario en la sesión del servidor. El código central es el siguiente:

try {
    
    
		user.setPassword(newpwd);
		userService.updateUser(user); 
		session.setAttribute("loginUser", user);
		mav.addObject("msg", "修改成功");
	} catch (UserServiceException e) {
    
    
		e.printStackTrace();
}

inserte la descripción de la imagen aquí

Figura 5.4 Interfaz de modificación de contraseña

Modificar avatar de usuario: haga clic para modificar el avatar en el perfil de usuario, saltará a la página de modificación del avatar como se muestra en la Figura 5.5, el usuario selecciona el archivo de avatar, hace clic en cargar, el formulario transferirá la imagen al controlador de fondo y guarde el avatar del usuario En el servidor, se considera que el avatar anterior del usuario es el avatar predeterminado del sistema. De lo contrario, la imagen del avatar anterior del usuario se elimina y la nueva dirección del avatar del usuario se guarda en la información del usuario. que se pasa al Servicio para llamar a la interfaz de la capa Dao para modificar el perfil del usuario en la base de datos.Información de Avatar. El código central es el siguiente:

if(!(icon.isEmpty())){
    
    	//如果文件存在,isEmpty文件为空
			//保存文件目录
	String path = 	req.getServletContext().getRealPath("/")+"WEB-INF/jsp/face/"+user.getId()+ico	n.getOriginalFilename();
	File newFile = new File(path);
	//判断文件目录存在不存在,如果不存在就创建目录
	if(!(newFile.getParentFile().exists())){
    
    
		newFile.getParentFile().mkdirs();
	}
	try {
    
    
		icon.transferTo(newFile);	//转存文件		
		File oldIcon = new  File(req.getServletContext().getRealPath("/")+"WEB-INF/jsp/"+user.getImages());	//删除之前的头像	
		if(!(user.getImages().equals("face/boy.png") || user.getImages().equals("face/girl.png"))){
    
    
		//先判断用户之前的头像不是系统默认的头像,然后删除用户之前的头像
			if(oldIcon.exists()){
    
    
				oldIcon.delete();
				}
			}
			user.setImages("face/"+user.getId()+icon.getOriginalFilename());
			userService.updateUser(user);	//保存用户头像
			session.setAttribute("loginUser", user);	//将保存后的用户头像信息保存在用户session中
		} catch (Exception e) {
    
    	
			e.printStackTrace();
		}
	}else{
    
    
		mav.addObject("msg", "图片不存在");
}

inserte la descripción de la imagen aquí

Figura 5.5 Modificar la interfaz de avatar

Modificar contraseña: cuando el usuario hace clic en la página para modificar la contraseña, el navegador salta a la página de modificación de contraseña, como se muestra en la Figura 5-6.El usuario primero debe completar la respuesta de acuerdo con la pregunta de contraseña establecida previamente, y la página principal usa Ajax para ingresar la La respuesta a la pregunta de seguridad secreta del usuario se pasa al controlador de fondo, y se juzga la respuesta a la pregunta de seguridad secreta del usuario en la base de datos.Si la respuesta de seguridad secreta es incorrecta, la seguridad secreta del usuario respuesta se muestra en la página a través de javaScript. Si la respuesta de seguridad secreta es correcta, el usuario puede ingresar una nueva La pregunta de seguridad y la respuesta de seguridad del usuario. Después de hacer clic en Modificar para enviar el formulario, el navegador envía una solicitud para modificar la pregunta y respuesta de seguridad en la base de datos de fondo. El código central es el siguiente:

userService.updateUser(user);
	session.setAttribute("loginUser", user);
	mav.setViewName("forward:question_index");
mav.addObject("msg", "修改成功!");

inserte la descripción de la imagen aquí

Figura 5.6 Modificar la interfaz de protección con contraseña

5.3 El módulo Microblog
publica microblogs: como se muestra en la Figura 5.7 en la página de inicio del usuario, los usuarios pueden publicar microblogs, insertar emoticonos en la información del microblog o elegir insertar una imagen. En la página principal, los emoticonos se generan dinámicamente usando javaScript. La etiqueta div es se muestra en la página Cuando el usuario hace clic en publicar, el navegador envía una solicitud para transferir la información del microblog y la información de la imagen en el formulario de la página principal al controlador de fondo, guardar la información de la imagen en el servidor y solo guardar la ruta de la imagen en el base de datos, obtener el usuario de inicio de sesión actual de la Sesión, ensamblar la fuente de datos del microblog, pasar la fuente de datos al Servicio, llamar a la interfaz de la capa Dao para guardar la información del microblog en la base de datos. El código central es el siguiente:

if(!(pic.isEmpty())){
    
    	//如果文件存在,isEmpty文件为空
	//保存文件目录
	String path = req.getServletContext().getRealPath("/")+"WEB-inf/jsp/upload/pic/"+user.getId()+pic.getOriginalFilename();
	File newFile = new File(path);
	//判断文件目录存在不存在,如果不存在就创建目录
	if(!(newFile.getParentFile().exists())){
    
    
		newFile.getParentFile().mkdirs();
	}
	try {
    
    
		pic.transferTo(newFile); //转存文件
		weibo.setImage("upload/pic/"+user.getId()+pic.getOriginalFilename());
	} catch (Exception e) {
    
    
		e.printStackTrace();
		}
}else{
    
    
	//没有带图片
	weibo.setImage("null");
}
try {
    
    
		//保存微博信息
		weibo.setUser(user);
		weiboService.publishWeibo(weibo);	//保存微博信息
		user.setBlogNumber(user.getBlogNumber()+1);		//将用户的微博数+1
		userService.updateUser(user);		//保存更改后的用户信息
		session.setAttribute("loginUser", user);	
		mav.addObject("msg", "发布成功!");
	} catch (Exception e) {
    
    	
		e.printStackTrace();
		mav.addObject("msg", e.getMessage());
	}

inserte la descripción de la imagen aquí

Figura 5.7 Interfaz de publicación de información de Weibo

Buscar Weibo: como se muestra en la Figura 5.8, ingrese una palabra clave en el cuadro de búsqueda en la página de inicio de Weibo, haga clic en Buscar para enviar el formulario, el navegador envía una solicitud para pasar la palabra clave al controlador de fondo y consulta Weibo relacionado en la base de datos a través de información de consulta vaga. En el método específico de la capa Servicio, llame a la interfaz de la capa Dao para obtener información relevante del microblog, recorrer la colección, reunir la información básica del microblog y el objeto del editor, convertir la expresión del microblog en una imagen gif correspondiente y ajustar el formato de hora del microblog como Correspondiente al formato, modifique las palabras clave de búsqueda en el contenido de Weibo para que se muestren en rojo y devuelva los datos modificados a la página principal para su visualización, como se muestra en la Figura 5.9. El código central es el siguiente:

User user = (User) session.getAttribute("loginUser");
	if("weibo".equals(ac)){
    
    
		mav.setViewName("seachWeiboPage");
	}else if("user".equals(ac)){
    
    
		mav.setViewName("seachUserPage");
	}
	try {
    
    
		Map<String, Object> map = userService.seachWeiboAndUser(skey,pag,ac);
		mav.addObject("map", map);	
		List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());
		mav.addObject("tuijian", userTuiJian);
		} catch (Exception e) {
    
    
			e.printStackTrace();
	}

inserte la descripción de la imagen aquí

Figura 5.8 Interfaz de publicación de información de Weibo

inserte la descripción de la imagen aquí

Figura 5.9 Interfaz de visualización de búsqueda de Weibo

Operación de Weibo; haga clic en Weibo para dar Me gusta, reenviar y guardar tipos de funciones, envíe la solicitud de identificación de Weibo al controlador de fondo a través de Ajax, obtenga la información de usuario de inicio de sesión de la Sesión y pase los parámetros al método correspondiente del Servicio a través de Weibo Las diferentes operaciones del blog llaman a la interfaz de la capa Dao correspondiente para guardar los me gusta, los retweets y la información de recopilación de Weibo en la base de datos. Después de hacer clic en el comentario, salte a JavaScript a través del evento de clic en la página de primer plano, envíe una solicitud asincrónica al controlador de fondo a través de Ajax y pase la identificación de Weibo al método correspondiente en la capa de Servicio.Use la interfaz de la capa Dao para encontrar el número de Weibo correspondiente en la base de datos.Para la información de los comentarios, la paginación de los comentarios del microblog está controlada por la clase PageBean correspondiente, la cantidad de elementos que se mostrarán en la paginación está controlada por la instrucción SQL en la capa de la base de datos y el json los datos se pasan en el controlador a la página principal para su visualización. Al final de la información del comentario, los usuarios pueden publicar sus propios comentarios, agregar emoticonos, hacer clic en publicar para enviar el formulario al controlador de fondo y llamar a la interfaz de la capa Dao en el código de fondo para guardar la información del comentario del usuario. Como se muestra en la Figura 5.10. El código central es el siguiente:

comm.setBeCommentId(dao.findUserIdbyWId(comm.getWeiboId()));
	comm.setCommentLike(0); 	//默认点赞数为0
	//保存评论信息
	dao.saveWeiboComm(comm);
	Weibo weibo = dao.findWeiboBywId(comm.getWeiboId());
	//查找微博评论数
	commNum = dao.findCommNum(comm.getWeiboId());
	weibo.setComnum(commNum);
	//更新微博评论数目
dao.updateWeibo(weibo);

inserte la descripción de la imagen aquí

Figura 5.10 Interfaz de operación de texto de Weibo

Weibo personal: como se muestra en la Figura 5.11: En la barra de navegación en la parte superior de la página, puede hacer clic para ingresar a la página de inicio personal del usuario para ver mi Weibo. En el medio de la página, se muestra la barra de navegación en la parte superior de la página, y la información básica del usuario se muestra a continuación, y las publicaciones publicadas por el usuario se muestran en el medio. Weibo, al hacer clic en la imagen insertada en Weibo también puede ampliar la imagen a través de JavaScript y mostrar los amigos recomendados por el sistema para el usuario en el lado derecho de la página. La solicitud enviada después de hacer clic en el botón Mi Weibo será recibida por el controlador en segundo plano, y la identificación de usuario del usuario que ha iniciado sesión actualmente se obtendrá de la sesión del servidor, se pasará a la capa de servicio y se llamará a la interfaz de la capa Dao. en la capa de servicio para obtener la ID del usuario conectado actualmente de la base de datos. La información del microblog se ensambla en una colección de listas, atraviesa la colección de listas, cambia el formato de fecha de la fuente de datos del microblog, llama a la clase de herramienta para reemplazar la expresión en el texto del microblog con la información de la imagen correspondiente, y utilizar la base de datos de Oralce en la paginación de la pseudocolumna del microblog para obtener la información del microblog del intervalo correspondiente, realizar la paginación de la capa de la base de datos, pasar todos los datos que debe mostrarse en la página al controlador, y el controlador encapsula los datos en la respuesta de Respuesta y los pasa a la página principal. El código central es el siguiente:

List<Weibo> list = weiboService.findHomeWeibo(0, page, null);
	list = FaceFormat.formt(list);
	for(int i=0;i<list.size();i++){
    
    
		long uId = list.get(i).getU_id();	//获取用户id
		User weibo_user = userService.findUserById(uId);
		list.get(i).setUser(weibo_user); 	//将user信息组装到weibo类中
		boolean b = weiboService.userLikeWeibo(list.get(i).getId(), user.getId());
		list.get(i).setB(b);
		//重新查找未读私信数目
		Map<String, Object> alerts = userService.alerts(user.getId());
		session.setAttribute("alerts", alerts);
	}
	int pageNumber = 0;
	page.setTotalPage(pageNumber/10+1); 	//确定所有的微博共有多少页
List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());

inserte la descripción de la imagen aquí

Figura 5.11 Interfaz personal de Weibo

5.4 Módulo de amigo
Ver microblog de amigo: haga clic en mi amigo en la barra de navegación de la página para ir a la página de microblog de amigo. En el controlador de fondo, primero obtenga el valor de identificación del usuario conectado actualmente desde la sesión y páselo al Servicio En el método de la capa Dao de llamada de servicio para encontrar primero toda la información de amigos del usuario correspondiente en la tabla de amigos de la base de datos, y luego verifique la información de Weibo correspondiente a estos amigos en la tabla de Weibo de la base de datos en orden inverso al lanzamiento de Weibo tiempo, y enumere toda la información de Weibo encontrada y la información de usuario publicada se encapsulan en una colección de listas, recorre la colección de listas para modificar la fecha de Weibo, convierte los emoticones de Weibo en nombres de imágenes correspondientes, pasa la colección procesada al controlador y el controlador responde con todos los datos ensamblados Vaya a la página de primer plano y use la etiqueta C para recorrer la Lista en la página de primer plano para mostrar los datos de Weibo, como se muestra en la Figura 5.12. El código central es el siguiente:

List<Weibo> list = friendService.findFriendWeibo(user.getId(), page);
	list = FaceFormat.formt(list);
	for(int i=0;i<list.size();i++){
    
    
		long uId = list.get(i).getU_id();	//获取用户id
		User weibo_user = userService.findUserById(uId);
		list.get(i).setUser(weibo_user); 	//将user信息组装到weibo类中
		boolean b = weiboService.userLikeWeibo(list.get(i).getId(), user.getId());
		list.get(i).setB(b);
		comm = FaceFormat.commFormt(comm);
		list.get(i).setComm(comm);			list.get(i).setStr_pubTime(TimeFormat.dateToString(list.get(i).getStr_pubTime())
	}
	int pageNumber = friendService.findWeiboNumber(user.getId());
	page.setTotalPage(pageNumber/10+1); 	//确定所有的微博共有多少页
List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());

Función de seguimiento: cuando el usuario inicia sesión en el sistema, puede seleccionar el usuario que necesita seguir de los usuarios recomendados en el lado derecho de la página. Después de hacer clic en Seguir, la página principal envía una solicitud asíncrona a través de la tecnología Ajax para enviar el ID de usuario del usuario que se seguirá al controlador en segundo plano Obtenga la información del usuario conectado en la Sesión del servidor, pase la ID del usuario conectado y la ID del usuario seguido al método correspondiente en la capa de Servicio, procéselo en el método correspondiente de la capa de Servicio, ensamble la fuente de datos de información del amigo y llame a la interfaz de la capa Dao Guarde la información de atención del usuario, actualice el número de atención del usuario al mismo tiempo, actualice la cantidad de fanáticos del usuario que se sigue, y luego modifique la atención de la información del texto de la página para que se siga a través de javaScript en la página principal. El código central es el siguiente:

User user = (User)session.getAttribute("loginUser");
	long bId = Long.parseLong(attId);
	User bUser = userService.findUserById(bId);	
	weiboService.operationUser(operation, user, bUser);

Dejar de seguir: y siga el tipo de función, haga clic en Mis amigos en la barra de navegación, haga clic en Seguir en el medio, puede ver todos los amigos que sigo, su número de amigos y su información personal, como se muestra en la Figura 5.13, haga clic en Dejar de seguir, pase el ID de amigo al controlador de fondo a través de Ajax, obtenga la información del usuario en la solicitud en el controlador, pase la ID de amigo y la ID de usuario al método correspondiente en la capa de Servicio, y llame a la interfaz de la capa Dao para que corresponda a la ID de usuario y amigo id La información de amistad del usuario se elimina, y la cantidad de seguidores del usuario y la cantidad de fanáticos del usuario que se sigue se cambian al mismo tiempo. Luego devuelva la respuesta para actualizar la lista de amigos en la página de primer plano.

else if(operation.equals("QXGZ")){
    
    
		//取消关注用户操作
		dao.canUser(aId,bId);
		aUser.setAttention(aUser.getAttention()-1);		//a用户关注数-1
	bUser.setFans(bUser.getFans()-1);		//b用户粉丝数-1	
}

Bloquear usuarios: similar a dejar de seguir a los usuarios, excepto que en la interfaz de la capa Dao, los registros de usuario existentes no se eliminan sino que se eliminan lógicamente, es decir, se modifica el estado del registro correspondiente en la tabla de amigos y los mensajes privados y Weibo publicados por el usuario bloqueado La información no será vista por los usuarios bloqueados. El código central es el siguiente:

else if(operation.equals("LH")){
    
    
		//拉黑用户 不接收该用户的私信
		friendDao.updateFriendToBlack(aId, bId);
		friendDao.updateFriendState(aId, bId);
}

inserte la descripción de la imagen aquí

Figura 5.12 Interfaz de información de amigo Weibo

inserte la descripción de la imagen aquí

Figura 5.13 Interfaz de la lista de amigos

Mensaje privado: puede ver la cantidad de mensajes privados no verificados del usuario de inicio de sesión actual en la página de usuarios recomendados, como se muestra en la Figura 5.14, la cantidad de mensajes privados no leídos es a través de toda la información de mensajes privados en la base de datos para todos los destinatarios del usuario de inicio de sesión actual, y el estado de la información es Para mensajes privados no leídos, pase el valor obtenido a la página principal, y todos los valores mostrados en la página principal se obtienen de la respuesta enviada desde el servidor a través de expresiones EL. Haga clic en el mensaje privado no leído o haga clic en el botón de mensaje privado en la lista de amigos que se muestra en la Figura 5.13 para ir a la página de mensajes privados del usuario. El código central es el siguiente:

List<User> userList = dao.findUserByMessage(aId);
	if(bId == -1 && userList.size()!=0){
    
    
		//通过点击私信进入
		bId = userList.get(0).getId();
	}
	List<Message> list = dao.findMessageById(aId, bId);
	for(int i=0;i<list.size();i++){
    
    
		list.get(i).setUserA(userDao.findUserById(list.get(i).getUserAId()));
		list.get(i).setUserB(userDao.findUserById(list.get(i).getUserBId()));
	list.get(i).setMessageDate(TimeFormat.dateToString(list.get(i).getMessageDate()));
	}
	list = FaceFormat.messageFormt(list);
User user = userDao.findUserById(bId);

inserte la descripción de la imagen aquí

Figura 5.14 Interfaz de mensajes privados no leídos del usuario

Ver mensajes privados: como se muestra en la Figura 5.15, cuando un usuario hace clic en un mensaje privado para seguir a un amigo, el controlador de fondo salta a la página de usuario de mi mensaje privado. El lado izquierdo de la página muestra la información del mensaje privado más reciente del usuario, y el lado derecho de la página muestra todos los mensajes privados que se han enviado. Haga clic en un usuario en la lista para enviar un mensaje privado al usuario directamente, y los emoticones están permitidos en el mensaje privado. En el código de fondo, pase la identificación de usuario para enviar el mensaje privado y la identificación de usuario de inicio de sesión obtenida de la sesión al método correspondiente en la capa de servicio, llame a la interfaz de la capa Dao para encontrar todos los registros de mensajes privados relacionados con el usuario en la base de datos y modificarlo al mismo tiempo Se lee el estado de todos los mensajes privados, se ensamblan los registros obtenidos en una colección, se recorre la colección y se llama a la clase de herramienta para modificar el formato de fecha del mensaje privado y el formato de expresión en el texto, y al mismo tiempo obtenga todos los usuarios que tienen registros de mensajes privados con el usuario de inicio de sesión actual de la base de datos, devuelva la colección ensamblada al controlador, el controlador responde los datos a la página principal, atraviesa los datos en la colección y los muestra en la página frontal de JSP. El código central es el siguiente:

for(int i=0;i<userList.size();i++){
    
    
		//查找来自该用户的未读私信
		userList.get(i).setUnReadMessage(dao.findURMNByUID(aId, 	userList.get(i).getId()));
}

inserte la descripción de la imagen aquí

Figura 5.15 Interfaz de mensajes privados de usuario

Enviar un mensaje privado: el usuario primero selecciona el usuario para enviar, ingresa la información del mensaje privado que se enviará y puede insertar emoticones en el mensaje privado. Después de hacer clic en enviar, se enviará el formulario. El navegador envía la solicitud al fondo. controlador, y el controlador obtiene la identificación del usuario que envía y recibe la identificación del usuario, llama al método en la capa de servicio, ensambla la fuente de datos como información de mensaje privado, establece la información de mensaje privado como no leída, llama a la interfaz de capa Dao en el método correspondiente en la capa de servicio para guardar la información del mensaje privado en la base de datos. El código central es el siguiente:

friendService.sendMessage(message);
	List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());
	mav.addObject("tuijian", userTuiJian);
	//查找用户有私信的记录
	Map<String, Object> map = friendService.findMessageById(user.getId(), userBId);
	@SuppressWarnings("unchecked")
	List<Message> Messagelist = (List<Message>) map.get("list");
	User bUser = (User) map.get("bUser");
	@SuppressWarnings("unchecked")
	List<User> attUser = (List<User>)map.get("attUsers");

Usuarios de búsqueda: en la página de usuario de búsqueda, los usuarios pueden ingresar palabras clave de los apodos de los usuarios para consultar de manera confusa a los usuarios relacionados. Cuando los usuarios ingresan los apodos de los usuarios para ser consultados, el navegador envía una solicitud con palabras clave y otra información para saltar a un método específico en el controlador. , la lógica de procesamiento del método en Servicio se llama dentro del método del controlador, y la capa empresarial llama al método de búsqueda en la interfaz de la capa Dao para encontrar usuarios cuyos apodos de usuario contengan palabras clave, ensamblar los usuarios correspondientes obtenidos de la base de datos en un conjunto y atravesar el conjunto a Las palabras clave contenidas en el apodo del usuario se cambian a rojo, el controlador devuelve una respuesta y salta a la página de resultados de búsqueda, y atraviesa la colección para mostrar toda la información de usuario encontrada. Como se muestra en la Figura 5.16. El código central es el siguiente:

Map<String, Object> map = userService.seachWeiboAndUser(skey,pag,ac);
		mav.addObject("map", map);
		List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());
		mav.addObject("tuijian", userTuiJian);

inserte la descripción de la imagen aquí

Figura 5.16 IU de búsqueda

Página de inicio del usuario: en la página, al hacer clic en el nombre o la imagen de perfil de cualquier usuario, se saltará a la página de inicio personal del usuario correspondiente. La página de inicio personal del usuario muestra la información personal del usuario y el último Weibo del usuario, organizados en orden cronológico inverso, y el usuario también puede Utilice los me gusta, reenvíos, comentarios y favoritos de Weibo. En el código adquirido, cuando un usuario hace clic en el avatar o el nombre de otro usuario, el navegador envía una solicitud con la identificación del usuario al controlador de fondo. El controlador llama al método correspondiente en el Servicio, llama a la interfaz de la capa Dao en el método del Servicio para ver la información básica del usuario y la información de Weibo del usuario de la base de datos, y almacena todos los datos en la colección. Vuelva al controlador, y el controlador llevará los datos a la página principal para mostrarlos, como se muestra en la Figura 5.17. El código central es el siguiente:

List<Weibo> list = friendService.findFriendWeibo(user.getId(), page);
	list = FaceFormat.formt(list);
	for(int i=0;i<list.size();i++){
    
    
		long uId = list.get(i).getU_id();	//获取用户id
		User weibo_user = userService.findUserById(uId);
		list.get(i).setUser(weibo_user); 	//将user信息组装到weibo类中
		boolean b = weiboService.userLikeWeibo(list.get(i).getId(), user.getId());
		list.get(i).setB(b);
		comm = FaceFormat.commFormt(comm);
		list.get(i).setComm(comm);		  			 	list.get(i).setStr_pubTime(TimeFormat.dateToString(list.get(i).getStr_pubTime()));
}

inserte la descripción de la imagen aquí

Figura 5.17 Interfaz de la página de inicio del usuario

5.5
Lanzamiento del módulo Conch: cuando el usuario ingresa a la página de inicio de Conch, la página del navegador envía una solicitud al controlador de back-end para llamar a un método específico en la capa comercial, y el Servicio llama a la interfaz de la capa Dao para encontrar preguntas de conch relacionadas con diferentes filtre las condiciones en la base de datos y encapsule los problemas encontrados en una colección, envíe la respuesta del servidor a través del controlador, salte a la página de inicio de Conch y muestre todos los problemas de Conch en un bucle. Si el usuario necesita publicar una pregunta, después de completar la descripción de la pregunta y la cantidad de puntos que se otorgarán, haga clic en Publicar y el navegador envía los datos del formulario al controlador en segundo plano. En la capa de Servicio, primero se juzga si los puntos de concha del usuario son mayores que los puntos de recompensa, si son menores que los puntos de recompensa, volverá a la página del navegador para indicarle al usuario que los puntos son insuficientes. Si los puntos son suficientes, llame a la interfaz de la capa Dao para guardar las preguntas de la concha del usuario en la base de datos y, al mismo tiempo, reduzca los puntos de la concha del usuario para modificar la información básica del usuario. El código central es el siguiente:

//海螺分页
	//获取海螺总数
	int num = userService.conchNum(user.getId(), conchOperation);
	if(num%5 == 0){
    
    
		page.setTotalPage(num/5);
	}else{
    
    
		page.setTotalPage(num/5+1);
	}
	page.setPage(1);	//每5页一分页
	page.setMinPage(1*5-4);
	page.setMaxPage(1*5);
	//查找海螺显示
	Map<String, Object> map = userService.conchIndex(user.getId(), conchOperation ,page);
	List<User> userTuiJian = weiboService.findUserTuiJian(user.getId());

inserte la descripción de la imagen aquí

Figura 5.18 Interfaz de la página de inicio de Conch

Ver problemas de la concha: cuando un usuario hace clic en un problema específico en la página de inicio de la concha, el navegador envía una solicitud al controlador de fondo para llamar al método correspondiente a la capa de Servicio y llama a la interfaz de la capa Dao en la capa de Servicio para ver el problema específico. información de la caracola a través del número del problema de la caracola. La identificación de usuario que publicó la pregunta busca la información del editor correspondiente en la base de datos, y el servidor devuelve una respuesta al navegador, mostrando la información específica de la caracola, y el usuario el nombre, el título del usuario, la fecha de lanzamiento, la pregunta de la concha, los puntos de recompensa y la pregunta del usuario que publica se muestran en la parte superior El estado de la pregunta, etc., muestra toda la información de respuesta de la pregunta en el medio, el usuario de la persona que responde nombre, título, contenido de la respuesta, fecha de respuesta, si es aceptada, etc., como se muestra en la Figura 5.19. El código central es el siguiente:

List<WeiboComm> list = weiboDao.findWeiboComm(conchId, 0, 20);
	list = FaceFormat.commFormt(list);
	for(int i=0;i<list.size();i++){
    
    			                                  	list.get(i).setCommentDate(TimeFormat.dateToString(list.get(i).getCommentDate()));
	list.get(i).setCommUser(userDao.findUserById(list.get(i).getCommentId()));
	}
	map.put("conchComm", list);

inserte la descripción de la imagen aquí

Figura 5.19 vista de la interfaz específica del problema

Responda las preguntas de la caracola: puede responder las preguntas de la caracola en la parte inferior de la página de información detallada de las preguntas de la caracola, ingrese la respuesta en el cuadro de entrada, inserte la información del emoticón, haga clic en responder para enviar el formulario, el navegador solicita llevar los datos del formulario a el controlador de fondo, y es controlado El método específico en el servidor recibe, obtiene el número de usuario en la Sesión, ensambla la fuente de datos de la información de respuesta, pasa los parámetros al Servicio y llama a la interfaz de capa Dao en el Servicio para guardar la información de respuesta de la caracola, como se muestra en la Figura 5.20. El código central es el siguiente:

comm.setCommentState(100); //100回复正常未采纳 101回复正常被采纳
weiboDao.saveWeiboComm(comm);

inserte la descripción de la imagen aquí

Figura 5.20 Interfaz de respuesta de pregunta de Conch

Acepte la respuesta a la pregunta: En la página de inicio de Preguntas de la caracola, los usuarios pueden saltar a la página de Preguntas de la caracola publicada por el usuario haciendo clic en Mis preguntas de la caracola. En la página de Preguntas de la caracola publicada por el usuario, pueden elegir la respuesta que desean. creo que es la más correcta. La respuesta se convierte en una respuesta aceptada, lo que aumenta los puntos de concha del adoptante, como se muestra en la Figura 5.21. En el código de fondo, cuando el usuario hace clic para aceptar, la solicitud del navegador lleva la identificación de la pregunta de concha y la respuesta a la pregunta. la información se recibe mediante el método específico en el controlador de fondo, llame a la capa de servicio en el controlador, llame a la interfaz de la capa Dao en la capa empresarial para modificar el estado del problema de la concha en la base de datos para resolverlo, modifique el estado del comentario del aceptado usuario en la tabla de comentarios para ser aceptado, y actualice la página del problema de la caracola delantera. El código central es el siguiente:

//设置海螺状态为1
	userDao.setConchState(conchId);
	//设置海螺评论状态为101
	userDao.setConchComm(commId);
	//为用户增加海螺积分
	Conch conch = userDao.findConchById(conchId);
	User user = userDao.findUserById(userDao.findUserIdByCommId(commId));
	user.setConchIntegral(user.getConchIntegral()+conch.getcNumber());

inserte la descripción de la imagen aquí

Figura 5.21 Interfaz de aceptación de preguntas y respuestas

5.6 Inicio
de sesión del administrador del módulo de administrador en segundo plano: el administrador puede hacer clic en el inicio de sesión del administrador en la página de inicio de sesión para ir a la página de inicio de sesión del administrador, como se muestra en la Figura 5.22. La capa del Controlador recibe la solicitud, llama al método en la capa empresarial con el nombre de usuario y la contraseña como parámetros, llama a la interfaz de la capa Dao en la capa de Servicio y consulta en la tabla de la cuenta del administrador en la base de datos, devuelve la clase del administrador si existe y lo lanza si no existe Cuando ocurre una excepción, la excepción se lanza capa por capa, se recibe en la capa del controlador y la información del error se guarda en el valor de retorno del método, y la página solicita. el nombre y la contraseña son correctos, saltará al método de procesamiento de la página de inicio del administrador en el controlador. En el método de procesamiento de la página de inicio del administrador, se obtienen y muestran los datos que se mostrarán. El código central es el siguiente:

@RequestMapping("admin_login")
	public String adminIndex(){
    
    
		return "admin/adminlogin";
}
 

inserte la descripción de la imagen aquí

Figura 5.22 Interfaz de inicio de sesión del administrador

Página de inicio del administrador: después de iniciar sesión, el sistema saltará a la página de inicio del administrador y la barra de navegación se mostrará en la parte superior de la página de inicio. En términos de contenido de la página, se utilizarán cuatro gráficos para mostrar el número total de usuarios de Weibo. , comentarios, caracola, comentarios, respuestas, etc. Y el número del mes actual, el gráfico de barras a continuación muestra el número de los 7 días más cercanos a hoy. El fondo primero salta al método de procesamiento correspondiente a la página de inicio del administrador en la capa del controlador, llama al método correspondiente en la capa de servicio para obtener los datos de visualización de la página de inicio, ensambla los datos obtenidos en una colección de mapas y llama a la capa Dao en la capa de servicio El método para obtener el usuario, Weibo, comentario, respuesta y otros datos que deben mostrarse en la página de inicio se almacena en la colección de mapas, los datos de valor de retorno se obtienen en la capa de control y se almacenan en la respuesta del servidor y volvió a la página principal para mostrar los datos usando expresiones EL, como se muestra en la Figura 5.23. El código central es el siguiente:

//首页展示数据
	try {
    
    
		Map<String, Object> map = adminService.indexDate();
		mav.addObject("map", map);
	} catch (UserServiceException e) {
    
    
		e.printStackTrace();
}

inserte la descripción de la imagen aquí

Figura 5.23 Interfaz de la página de inicio del administrador

Página de inicio de administración de usuarios: el código de fondo llama al método correspondiente en la capa de Servicio, y el método de Servicio llama a la interfaz de la capa Dao para interactuar con la base de datos, obtener toda la información del usuario en la base de datos y encapsularla en una colección de Lista y devolverla a la capa del controlador para responder a la colección de listas de usuarios al navegador En la página, la información del usuario se recorre y se muestra a través de la etiqueta C. La paginación de la página utiliza la clase de paginación personalizada PageBean para guardar la información de paginación y realiza la paginación en la capa de base de datos para obtener 10 piezas de datos a la vez. El código central es el siguiente:

int num = 0;
	if(ukey == null){
    
    
		num =  adminService.findUserNum();
	}else{
    
    
		num = adminService.findUserNum(ukey);
	}
	if(num%10 == 0){
    
    
		pageBean.setTotalPage(num/10);
	}else{
    
    
		pageBean.setTotalPage(num/10+1);
	}
	pageBean.setPage(page);
	pageBean.setMinPage(page*10-9);
	pageBean.setMaxPage(page*10);
	List<User> list = null;
	if(ukey == null){
    
    
		list =  adminService.userManage(pageBean);
	}else{
    
    
		list = adminService.userManageByKey(pageBean, ukey);
	}
	mav.addObject("userList", list);
mav.addObject("pageBean",pageBean);

inserte la descripción de la imagen aquí

Figura 5.24 Interfaz de gestión de usuarios

Buscar usuarios: ingrese las palabras clave en el apodo del usuario en la página de administración de usuarios para buscar usuarios, y el sistema mostrará la parte de la información del usuario obtenida donde el apodo es la palabra clave de entrada en rojo. En el código de fondo, al hacer clic en Buscar pasará la palabra clave del apodo de usuario ingresada por el administrador al controlador de fondo, llamará al método de usuario de búsqueda correspondiente en la capa de Servicio en el controlador y llamará a la interfaz de la capa Dao en la capa de Servicio en la base de datos Obtener usuarios a través de consultas difusas. Y devuelva los datos obtenidos capa por capa, responda a la página principal en el Controlador y luego muéstrela en la página, como se muestra en la Figura 5.25. El código central es el siguiente:

list = adminDao.findAllUserByKey(key,page.getMinPage(),page.getMaxPage());
	for(int i=0;i<list.size();i++){
    
    
		list.get(i).setNickName(FaceFormat.keyFormt(list.get(i).getNickName(), key));
}

inserte la descripción de la imagen aquí

Figura 5.25 Interfaz de usuario de búsqueda de administrador

Prohibición de usuarios: el administrador puede hacer clic en el botón de prohibición en la columna de operación de la página de administración de usuarios para prohibir al usuario infractor. El administrador puede ingresar el número de días para la prohibición. Antes de esta fecha, el usuario no puede iniciar sesión normalmente, y el El administrador puede Desbloquear usuarios por adelantado haciendo clic en Desbloquear.La página específica se muestra en la Figura 5.26. En el código de fondo, se llama a la interfaz de la capa Dao en la capa de Servicio para cambiar el estado del usuario y la fecha de prohibición. Desbanear es similar a prohibir usuarios, por lo que no se darán instrucciones específicas. El código central es el siguiente:

mav.setViewName("redirect:userManage");
	try {
    
    
		adminService.FJUser(uId, day);	//uId封禁用户编号,day封禁天数
	} catch (UserServiceException e) {
    
    
		e.printStackTrace();
	}
mav.addObject("page", 1);

inserte la descripción de la imagen aquí

Figura 5.26 Interfaz de usuario de prohibición

Página de inicio de administración de Weibo: los administradores hacen clic en Administración de Weibo en la barra de navegación, el sistema saltará a la página de administración de Weibo del usuario, mostrando la información de Weibo utilizada en el sistema, los administradores también pueden ingresar palabras clave en el contenido de Weibo Buscar Weibo, y al mismo tiempo elimine el Weibo con información incorrecta o restaure el Weibo eliminado. La página de administración de Weibo se muestra en la Figura 5.27. En el código de fondo, cuando el usuario haga clic en Administración de Weibo en la barra de navegación, el navegador enviará la solicitud correspondiente al Controlador de el marco SpringMVC para obtener más métodos de procesamiento, llame al método de visualización de todos los microblogs en la capa de Servicio en el controlador y luego llame al método de capa Dao en la capa de Servicio para obtener toda la información de Weibo, en términos de paginación, no utiliza el método de paginación en la página de inicio, pero utiliza la pseudocolumna de Oracle para realizar la paginación en la base de datos, obtiene 10 datos a la vez y finalmente responde a la información de Weibo obtenida en el Controlador Para el navegador, el navegador muestra Weibo información a través del cruce de etiquetas c. El código central es el siguiente:

String nkey = "";
	if(key == null){
    
    
		nkey = "1=1";
	}else{
    
    
		nkey = "m_body like '%"+key+"%'";
	}
	list = adminDao.findWeiboByKey(nkey, pageBean.getMinPage(), pageBean.getMaxPage());
	list = FaceFormat.formt(list);
	for(int i=0;i<list.size();i++){
    
    
						list.get(i).setStr_pubTime(TimeFormat.timeFormat(list.get(i).getPubTime()));
		list.get(i).setUser(userDao.findUserById(list.get(i).getU_id()));
		if(key != null){
    
    
		list.get(i).setBody(FaceFormat.keyFormt(list.get(i).getBody(), key));
		}
}

inserte la descripción de la imagen aquí

Figura 5.27 Interfaz de administración de Weibo

Búsqueda de microblog: los administradores pueden buscar microblogs con la palabra clave en el contenido del microblog introduciendo palabras clave en el contenido del microblog, y las palabras clave en el contenido del microblog buscado se marcarán en rojo, como se muestra en la página específica Como se muestra en 5.28, en el código de fondo, un método específico en el controlador recibe la solicitud de búsqueda de microblog enviada por navegación, llama al método correspondiente en la capa de servicio, pasa palabras clave como parámetros a la interfaz de la capa Dao y busca en la interfaz de la capa Dao El contenido del microblog en la base de datos La tabla de microblog contiene la información de microblog de la palabra clave, y el microblog correspondiente se encuentra en la base de datos a través de una consulta difusa. Luego, encapsule la información del microblog encontrado en la colección List, y regrese al método correspondiente en el controlador capa por capa, y responda los datos al navegador en el método, y el navegador recibe la respuesta y muestra los datos a través de la etiqueta c en la pagina. El código central es el siguiente:

if(key == null){
    
    
		nkey = "1=1";
	}else{
    
    
		nkey = "m_body like '%"+key+"%'";
	}
list = adminDao.findWeiboByKey(nkey, pageBean.getMinPage(), pageBean.getMaxPage());

inserte la descripción de la imagen aquí

Figura 5.28 Interfaz de Weibo de búsqueda de administrador

Eliminación de Weibo: en la página de administración de Weibo, el administrador puede juzgar si Weibo es ilegal o no de acuerdo con el contenido de Weibo. Si la información de Weibo contiene información incorrecta, el administrador puede eliminar Weibo a través del botón Eliminar en la barra de operaciones. Blog o puede restaurar el Weibo eliminado. Cuando el usuario haga clic para eliminar, la página enviará una solicitud al servidor con parámetros como el número de Weibo, y la solicitud será recibida por el método correspondiente en el controlador, y el El número de Weibo será Como parámetro, use el método correspondiente en Servicio, llame a la interfaz de capa Dao en el método y modifique el estado del microblog correspondiente al número de microblog en la base de datos que se eliminará. Restaurar un microblog es similar a eliminar , excepto que el estado de la información de microblog correspondiente en la base de datos se modifica a Normal puede ser. El código central es el siguiente:

if("sc".equals(ac)){
    
    
		adminDao.upWeiboWithState(wId, 1);
	}else if("hf".equals(ac)){
    
    
		adminDao.upWeiboWithState(wId, 0);
}

Página de inicio de gestión de caracolas: el administrador hace clic en gestión de caracolas en la barra de navegación para ir a la página de gestión de caracolas, como se muestra en la Figura 5.29, la barra de navegación está en la parte superior de la página y el contenido de la página muestra toda la información de caracolas, el el cuadro de búsqueda de la concha y la información de la concha inferior incluye el número de serie, el nombre del editor, el contenido de la concha, la fecha de lanzamiento, el estado de la concha y las operaciones que se pueden realizar. el navegador envía una solicitud, solicitud Recibida por el método correspondiente en el controlador, llame a la interfaz de la capa Dao en el Servicio para encontrar toda la información de la concha en la tabla de la base de datos, guárdela en la colección List, recorra la colección List para ensamblar el editor la información del usuario, modificar el formato de la fecha, etc., y finalmente ensamblar la colección de la lista de números se devuelve al controlador, y la respuesta se envía al navegador para ir a la página de inicio de gestión de la concha, y se muestra la información de la concha buscada atravesando la etiqueta C. Dado que el método de paginación utilizado en el sistema es el mismo, no se describirá aquí. El código central es el siguiente:

int num = adminService.findConchNum(ckey);
	if(num%10 == 0){
    
    
		pageBean.setTotalPage(num/10);
	}else{
    
    
		pageBean.setTotalPage(num/10+1);
	}
	pageBean.setPage(page);
	pageBean.setMinPage(page*10-9);
	pageBean.setMaxPage(page*10);
List<Conch> list = adminService.findConch(pageBean, ckey);

inserte la descripción de la imagen aquí

Figura 5.29 Interfaz de la página de inicio de gestión de caracolas

Búsqueda de caracolas: en la página de inicio de gestión de caracolas, teniendo en cuenta la gran cantidad de caracolas, es difícil encontrar el problema, por lo que la función de búsqueda está configurada. El administrador puede buscar problemas de caracoles ingresando las palabras clave en el contenido de caracolas en la caracola. cuadro de búsqueda En la búsqueda de visualización Cuando se obtienen los resultados, las palabras clave de búsqueda se marcarán en rojo para facilitar su visualización. La página específica se muestra en la Figura 5.30. En el código de fondo, cuando el usuario ingresa una palabra clave y hace clic para buscar, el navegador envía una solicitud al método especificado en el controlador para recibirla, llama al método correspondiente en la capa de Servicio en el Controlador para procesar la lógica comercial y luego llama a la interfaz de la capa Dao en la capa de Servicio para pasar La consulta difusa busca la información correspondiente de la concha en la tabla de la concha de la base de datos, y finalmente responde la información de la concha encontrada al navegador en el Controlador, y atraviesa y muestra los datos a través de la etiqueta c en la página. Debido a que el sistema utiliza el mismo método de paginación, no entraré en detalles. El código central es el siguiente:

if(key == null){
    
    
		nkey = "1=1";
	}else{
    
    
		nkey = "CONCHBODY like '%"+key+"%'";
	}
	System.out.println(nkey);
	list = adminDao.findConchByKey(nkey, pageBean.getMinPage(), pageBean.getMaxPage());
list = FaceFormat.conchFormt(list);

inserte la descripción de la imagen aquí

Figura 5.30 Interfaz de búsqueda de caracoles

Capítulo 6 Pruebas del sistema

6.1 Descripción general de la prueba del sistema
En la etapa de escritura del código, las pruebas unitarias se utilizan principalmente para probar si el código tiene defectos, si las funciones del sistema pueden ejecutarse normalmente y si el software puede lograr el propósito esperado. los casos de prueba de los módulos correspondientes.Pasos para probar si hay defectos en el sistema, mientras se utilizan pruebas de caja negra y pruebas de caja blanca para mejorar las funciones del sistema, optimizar los códigos de software y mejorar la calidad de los sistemas de software.

6.2 Casos de prueba
6.2.1 Módulo de registro de usuarios
Tabla 6-1 Registro de usuarios
inserte la descripción de la imagen aquí

6.2.2 Módulo de inicio de sesión de usuario
Tabla 6-2 Inicio de sesión de usuario
inserte la descripción de la imagen aquí

6.2.3 Modifique el módulo de información del usuario
Tabla 6-3 Modifique la información del usuario
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

6.2.4 Módulo de Weibo
Tabla 6-4 Módulo de usuario de Weibo
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

6.2.5 Módulo amigo del usuario
Tabla 6-5 Módulo amigo del usuario
inserte la descripción de la imagen aquí

6.2.6 Módulo de concha de usuario
Tabla 6-6 Módulo de concha de usuario
inserte la descripción de la imagen aquí

6.2.7 Módulo de administrador
Tabla 6-7 Módulo de administrador
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

6.3 Análisis de prueba
Omitir

6.4 Resumen de este capítulo
En este capítulo, los casos de prueba del sistema se escriben principalmente para probar si el sistema puede realizar las funciones diseñadas y si contiene varios defectos.Después de probar el sistema de acuerdo con los casos de prueba, se encuentra que hay Hay pocos defectos visibles en el sistema, también se han resuelto algunos defectos descubiertos, pero no hay ningún sistema que esté absolutamente libre de defectos, por lo que los defectos del sistema deben descubrirse continuamente en el uso posterior.

Resumen del capítulo 7
omitido

Referencias
[1] Jia Wenxiao, Deng Junjie. Análisis de la tecnología de desarrollo web basada en Java [J]. Electronic Testing, 2016 [ 2] Li Chuanyang.
Diseño e implementación del sistema de análisis de Weibo [D]. Universidad de Correos y Telecomunicaciones de Beijing, 2015
[3] Liu Yunchen. Diseño y construcción de sitios web [M]. Tsinghua University Press, 2008 [
4] Qin Yahua. Diseño e implementación de un sitio web de microblog basado en WEB2.0 [D]. Universidad Tecnológica de Beijing 2012 [5
] Chen Ling, Xia Xun. Uso de SQL dinámico de Mybatis para realizar la paginación física [J]. Tecnología digital y aplicación. 2011 (11) [6]
Sa Shixuan, Wang Shan. Introducción a los sistemas de bases de datos (tercera edición) [M]. Beijing: Superior Education Press, 1998
[7] Investigación de tecnología de acceso a base de datos basada en Java [J]. Información científica y tecnológica. 2009 (04) [ 8]
Zhang Feng. Investigación e implementación de aplicaciones web basadas en la tecnología Ajax y el marco J2EE [D]. China University of Geosciences 2008
[9] Programación de redes basada en la tecnología de subprocesos múltiples de Java [J]. Habilidades y mantenimiento de programación de computadoras. 2009 (22)
[10] Li Wei. Diseño de un pequeño y práctico sistema de comunicación de chat de red instantánea [J]. Diario de la Universidad de Yangtze (Edición de Ciencias Naturales). 2011(12)
[11] Zhong Ruiqi. Análisis y diseño basado en Weibo Embedding Small Partner Reading Network [D]. Universidad Tecnológica del Sur de China 2011 [
12] Escrito por Wang Shaofeng. Objeto- Curso UML de tecnología orientada [M], Tsinghua University University Press, 2004
[13] Xu Chunmian, investigación sobre temas relacionados con el desarrollo de sitios web [J], Communication World, 2015 (09) [14] Zhang Yu, Wang
Yinghui, Zhang Xiangnan. Diseño e implementación de framework MVC basado en Spring [J] Ingeniería Informática 2010(04)
[15] Hu Yiqiao, Zhang Liping. Elección del modelo de desarrollo J2EE [J]. Aplicación del sistema informático. 2002 (08) [16] Wang Liai.
Diseño e implementación del sitio web del curso "Programación Java" [J]. Conocimiento y tecnología informáticos 2016(27)
[17] Rong Yandong. Investigación de aplicaciones en el marco de capa de persistencia de Mybatis [J]. Seguridad y tecnología de la información. 2015(12)

Agradecimientos
omitir


5. Descarga del código fuente:

El código fuente y la tesis de este proyecto son los siguientes, los amigos que lo necesiten pueden hacer clic para descargar. Si el enlace falla, puede hacer clic en la tarjeta a continuación para escanear el código y descargarlo usted mismo.

número de serie Un conjunto completo de recursos para el diseño de graduación (haga clic para descargar)
El código fuente de este proyecto. Diseño e implementación de sistema de microblog de arquitectura BS basado en javaEE+SSM+MySql (código fuente + documento)_JAVAEE_SSM_BS arquitectura sistema de microblog.zip

Supongo que te gusta

Origin blog.csdn.net/m0_66238867/article/details/125471185
Recomendado
Clasificación