0. Escribe en frente
Consejos amistosos: la dirección de descarga está a continuación.
El proyecto se ha completado básicamente. Con este resumen, he escrito 30 blogs relacionados con este proyecto, que han acumulado mucho. El proceso de escribir un blog es un proceso de solidificación de ideas. Es muy útil para mí y también puede ayudar a los demás. Por cierto, definitivamente habrá muchas excepciones en el proceso de aprendizaje. Lo primero que debemos hacer es localizar esta excepción. En general, uno o más causados por: xxx son seguidos por la excepción. Estas son las causas de la excepción. En general, buscamos lo causado por el fondo, que a menudo es la raíz del problema. Si no puede resolverlo usted mismo, puede buscar en Google o Baidu (¡no publique muchas anormalidades al buscar, preste atención a las partes clave!). En general, el 99.9% de los problemas que encontramos han encontrado han sido encontrados por nuestros predecesores, y básicamente todos pueden resolverse. Básicamente hago esto cuando encuentro problemas que no se pueden resolver. Si los resuelvo más, lo sentiré ~ Finalmente, ¡espero que todos ganen algo al leer mi blog!
No diré tonterías. Resumamos el proyecto de este centro comercial en línea a continuación. No cubriré todo. Se divide principalmente en varios módulos para resumir, incluida qué tecnologías se utilizan, etc. Adjuntaré un enlace rápido a los detalles específicos en el artículo. Puede consultar un artículo específico.
Recordando este proyecto, se puede dividir en estos módulos principales:
--- Construcción del entorno del proyecto
--- Construir un sistema de gestión de backend
--- Construir una página de visualización de recepción
--- Funciones relacionadas con el carrito de compras
--- Función de pago en línea
--- Enviar mensajes de correo electrónico y texto
--- Aplicación de nombre de dominio e implementación del proyecto
--- VERIFICACIÓN DE FORMA Y PANTALLA
El siguiente es un análisis específico para cada módulo.
1. Construcción del entorno del proyecto
Este es un enlace indispensable en cada proyecto, y habrá muchos problemas desordenados. Cuando comencé a aprender SSH, siempre luché por construir el entorno porque no era muy hábil, pero solo quería construirlo "rítmicamente". Es decir, construir un proyecto ambiental requiere paso a paso, poco a poco. Muchas personas importarán todos los paquetes JAR, y luego escribirán todos los archivos de configuración o los pegarán desde otros lugares, y luego los ejecutarán y luego los colgarán ... y luego encuentre varios problemas. ¿Por qué molestarse? De esta manera, incluso si lo construye 10 veces, no podrá hacerlo fácilmente. Tienes que comer arroz de un bocado y tienes que caminar paso a paso.
El proceso que sigo personalmente para la construcción del entorno SSH es:
Spring> Hibernate> Integración de primavera Hibernate> Struts2> Spring Integration Struts2
Después de cada paso, escriba una prueba de prueba. Esto es muy importante, porque si va paso a paso, sabrá a dónde ir si comete un error y dónde encontrar el problema. Lo más importante es que si se vuelve competente en este proceso, será fácil obtener el medio ambiente la próxima vez. Para obtener más información sobre la construcción del entorno SSH, consulte el siguiente artículo:
Integre Struts2, Hibernate4.3 y Spring4.2
Adición básica, deleción, búsqueda y modificación, extracción de servicio y acción, y reemplazo de XML con anotaciones
2. Cree un sistema de gestión de backend
Utilizo EasyUI para construir el sistema de gestión de backend. Para ser honesto, solo tengo un poco de comprensión de Easyui. No sé mucho sobre las cosas frontales, pero entiendo un poco. También los revisé todos cuando los uso. No los he aprendido sistemáticamente, por lo que no tengo un buen sistema de conocimiento, pero no afecta el juego. A los programadores les gusta decir que están tocando una tecnología y que suenan de alta gama. Poco a poco me ha visto afectado y me gusta decir eso, pero realmente estoy jugando con el front-end ...
JQuery Easyui es una colección de complementos de UI basados en jQuery, y el objetivo de JQuery Easyui es ayudar a los desarrolladores web a crear una interfaz de UI que sea rica en características y maravillosamente. Los desarrolladores no necesitan escribir JavaScript complejo, ni necesitan tener una comprensión profunda de los estilos CSS. Todos los desarrolladores deben saber que son algunas etiquetas HTML simples.
Las solicitudes de Easyui son todas las solicitudes de Ajax, y no aparecerán nuevas páginas, todas están en la pestaña de pestaña o aparece una ventana. El sistema de gestión de backend se divide principalmente en tres partes: gestión de categorías de productos, gestión de productos y gestión de ventas. La gestión de ventas es la última.
2.1 Gestión de categorías de productos
Esta parte implica principalmente la construcción del entorno EasyUI y el marco de fondo, la consulta en cascada y la paginación de bases de datos, la pantalla de datos de datagrid, Struts2 Integration JSON y la adición de categorías de productos, eliminación, actualización y búsqueda. Esto también sigue una secuencia de terminaciones en esta sección.
DataGrid muestra datos en forma de tabla, y los desarrolladores no necesitan tener un conocimiento específico para operarlo. Tiene un buen documento de ayuda y es más detallado. En este proyecto, también he introducido varias formas de crear DataGrid, y también introduje brevemente algunas de las propiedades de DataGrid. Es un comienzo. También soy una herramienta introductoria. Solo desarrollando más puedo dominar esta tecnología.
Las funciones de adición, eliminación, actualización y búsqueda de las categorías utilizan principalmente la función de verificación que viene con EasyUI. Al agregar categorías de productos, verifique si la entrada en el cuadro de entrada es correcta, si es necesario, etc.; si se seleccionan primero una determinada línea o varias líneas al eliminar; Al actualizar, solo se puede actualizar una línea a la vez, etc., todas las cuales son solicitudes AJAX.
Para obtener más información sobre esta parte, ya la he clasificado, consulte estos artículos:
Use EasyUI para crear un marco de página de backend. Menú EasyUI para implementar consultas en cascada y paginación de bases de datos. Función de visualización de datos DataGrid Struts2 y JSON Integrated DataGrid para implementar consultas y eliminar funciones dataGrid para implementar la función de adición y actualización dataGrid para implementar la función de adición y actualización
Aquí están los problemas que encontré:
Problema de excepción de carga perezosa en Struts2 y JSON Integration Hibernate4 Execution Save () o Update () no es válido
2.2 Gestión de productos
La gestión de productos también incluye operaciones como agregar y eliminar, que es lo mismo que la gestión de categorías. Hay una cosa que agrega productos y necesita subir fotos de productos. Esto implica la función de STRUTS2 para implementar cargas de archivos. Necesitamos construir una carpeta en el lado del servidor para almacenar archivos cargados y luego escribir un modelo para recibir archivos. Con respecto a la carga de archivos, necesitamos escribir una clase de herramienta específicamente. Así es como es el desarrollo en el proyecto. Se debe extraer un código común, incluso si solo hay una oración de código, ¡debe extraerse! Este es un hábito y debe hacerse. Para obtener detalles específicos, consulte los artículos enumerados a continuación:
Se crea el módulo básico de la categoría de producto y se implementa la función de consulta y eliminación del producto. Se implementa la implementación de la función del producto. Se implementa la implementación de la función de carga de archivos.
3. Construya una página de visualización de recepción
Por supuesto, la página de front-end no fue diseñada por mí. Resumí algunas tecnologías de back-end relacionadas con la pantalla frontal, como: el oyente obtiene datos de la página de inicio, el temporizador sincroniza los datos de la página de inicio y el caché de procesamiento de caché de caché Hibernate de nivel 2 de productos populares.
Cuando estaba aprendiendo Servlet, así es como hice los datos de visualización de la página de inicio. Utilicé un marco y mostré los datos a la derecha. Luego salté a un servlet en la parte correcta en index.jsp, y luego fui al servlet para sacar todos los productos de la base de datos, ponerlos en el campo de solicitud y trajo la nueva página JSP para mostrar. Aunque esto se puede lograr, es muy estúpido. Aquí usé un oyente para hacer esto. Primero, definí un oyente, y cuando comenzó el proyecto, sacé toda la información del producto en la base de datos, la puse en el dominio de la aplicación y luego utilicé directamente las expresiones para recuperarla del dominio de la aplicación en la página de inicio.
Hay otro problema. Cuando agrego un nuevo producto al sistema de administración, tengo que reiniciar Tomcat para agregar el nuevo producto al dominio de la aplicación. Debido a que ha estado en el dominio de la aplicación después de la primera vez que lo saqué, está decidido a morir. El recién agregado más tarde no está en el dominio de la aplicación. Para resolver este problema, utilicé un temporizador para sincronizar los datos de la página de inicio. Así que reescribí al oyente que escribí antes, establecí un temporizador en el oyente, coloqué el código para obtener los datos del producto en la base de datos en la tarea del temporizador, y ejecutarlo inmediatamente por primera vez por primera vez, y luego ejecutarlo cada 6 horas (la hora se puede establecer a voluntad por sí misma), es decir, re-coture los productos en la base de datos cada 6 horas y ahorre en la aplicación Domain. Esto es lo que hace el sitio web general, como la página de inicio del blog personal de CSDN, la clasificación se actualiza todos los días, probablemente alrededor de las 10 p.m., olvidé el tiempo específico. En ese momento, la actualización verá la actualización de datos, que también reducirá la presión del servidor.
Para obtener detalles técnicos específicos en esta sección, consulte los siguientes artículos:
Use el oyente para que se muestren los datos en la página de inicio. Cómo obtener el hilo del archivo de configuración de Spring, la sincronización del temporizador de sincronización de la página de inicio Hibernate Página de inicio de procesamiento de caché secundario
4. Funciones relacionadas con el carrito de compras
Las principales tecnologías involucradas en el carrito de compras incluyen: el procesamiento de fondo de la lógica de los carros de compras y los artículos de compras, el inicio de sesión del juicio de filtración, las órdenes en cascada en la base de datos y el almacenamiento en caché de la página.
Para los carritos de compras, contiene principalmente cierta lógica de implementación en el backend. Hay artículos de compras en el carrito de compras. ¿Qué significa? Todos sabemos que cuando compramos cosas en Tmall, podemos poner diferentes productos en el carrito de compras, y luego hay muchos productos en el carrito de compras, y cada producto puede tener múltiples cantidades. Cada producto y su información relacionada es un artículo de compra. Por lo tanto, al agregar un carrito de compras, primero debemos completar un artículo de compra y luego agregar este artículo de compra al carrito de compras.
Cuando un usuario quiere establecerse, primero debemos determinar si el usuario ha iniciado sesión. Esto utiliza la tecnología de filtro, que filtra específicamente un cierto tipo de URL, y determina si hay un objeto de usuario en la sesión actual en el filtro. Si hay alguna indicación de que se haya iniciado sesión el inicio de sesión, simplemente suelte directamente. Si no, salta a la página de inicio de sesión para dejar que el usuario inicie sesión. Después de iniciar sesión, salte a la página que el usuario quería originalmente. Es como un portero ~ mirando la puerta ~
Como se mencionó en este momento, la información del pedido incluye carritos de compras y artículos de compras. Cuando ingresamos a las órdenes, debemos considerar sus problemas en cascada. Podemos establecer los atributos de anotación correspondientes en los Pojos de los dos. Sin embargo, hay un requisito previo. Por ejemplo, si hay una correlación de clave extranjera, los campos en la parte de la clave extranjera del POJO correspondiente deben asignarse un buen valor antes de ingresar al POJO. Por ejemplo, el pedido debe agregarse a la línea de pedido, y los atributos del pedido en la línea de pedido también deben asignarse un buen valor antes de que se puedan entregar a Hibernate. Hibernate los cae en cascada en la biblioteca de acuerdo con las anotaciones configuradas (o archivo XML).
El problema con el almacenamiento en caché de la página se refiere a eso cuando el usuario confirma el pedido, si hace clic, volverá a la página de confirmación del pedido. La página de confirmación del pedido recién vuelve a salir, y la sesión todavía está allí, y la información sigue siendo la información en este momento. Obviamente, este no es el resultado que queremos. Necesitamos procesarlo en la recepción y backend al mismo tiempo.
Consulte los siguientes artículos para obtener detalles técnicos específicos en esta sección:
Implementación de funciones básicas del filtro de carrito de compras para realizar la función de inicio de sesión para determinar los problemas de almacenamiento en cascada y almacenamiento en caché de la información del pedido
5. Función de pago en línea
Esta parte introduce principalmente algunas cosas sobre la interfaz de pago de Yibao. De hecho, las funciones de pago en línea son diferentes para diferentes terceros. El objetivo principal es comprender un proceso de desarrollo de funciones de pago en línea. Los detalles técnicos específicos dependen de la información proporcionada por los terceros específicos. Pero el proceso general es: llamar a la interfaz del tercero> llamar a la interfaz bancaria> Completar el pago> El tercero regresa a la página que especificamos.
Esta parte también involucra una tecnología importante, que es cómo Struts2 maneja múltiples solicitudes de modelos. En general, Struts2 puede usar el modelo en acción después de implementar ModedRiven <Model>, pero ¿qué pasa si ahora hay dos modelos? Hay otra interfaz llamada Parametersaware en Struts2. Mientras se implementa esta interfaz y se define un mapa que almacene los parámetros, puede recibir todos los parámetros en la solicitud de solicitud. Podemos juzgar qué modelo usar en función de diferentes parámetros. Este método puede resolver el problema de Struts2 manejando múltiples solicitudes de modelo.
Para obtener detalles técnicos en esta sección, consulte la siguiente publicación de blog:
Una introducción a la plataforma de pago en línea, una demostración del proceso de pago de Yibao
Obtenga la visualización de iconos bancarios y páginas de pago para completar la lógica de la función de pago en línea Cómo manejar múltiples solicitudes de modelo en Struts2
6. Función de envío de correo electrónico y SMS
El envío de correos electrónicos y el envío de mensajes de texto es relativamente simple. Ambas son API fijas, solo sepan cómo usarlas. Solo revisos y tampoco puedo recordarlos. La función de envío de correo electrónico debe importar el paquete Mail.jar y luego enviar correos electrónicos de acuerdo con el proceso. La función SMS primero debe solicitar la función de envío de SMS. Después de completar la solicitud, el tercero nos proporcionará algunas interfaces API. Podemos desarrollar la función de envío de SMS siempre que nos referimos a ella. Es algo similar a la función de pago, y todos dependen de plataformas de terceros.
No hay dificultades técnicas en esta parte, principalmente en el proceso, los artículos relacionados son los siguientes:
Enviar función SMS después de que se complete el pago de pedido exitoso utilizando el correo electrónico de Java a los usuarios
7. Aplicación de espacio de nombres de dominio e implementación y lanzamiento de proyectos
Esta sección introduce principalmente cómo solicitar un espacio de nombre de dominio gratuito (gratis solo durante 15 días, pero para aprender, suficiente ~). Aunque no todos son gratuitos, principalmente necesitamos descubrir este proceso. Es mejor revisarlo usted mismo. No necesariamente tiene que cargar un proyecto completo. Una página JSP o página estática HTML está bien.
Hay dos formas principales de implementar y publicar un proyecto: una es cargar usando FTP, pero esto es lento y puede perder datos. La experiencia personal es emitirlo poco a poco; Otra forma es solicitar un espacio de nombres de dominio para proporcionar un entorno de implementación. Solo necesitamos exportar el proyecto como un paquete de guerra y luego implementar el paquete de guerra.
Hay muchos detalles a los que prestar atención antes de la implementación del proyecto, como modificar algunas rutas, modificar algunos datos, etc. Estos detalles se explican en detalle en mi blog. Esta sección contiene un artículo, como sigue:
Aplicación para el espacio de los nombres de dominio y la implementación y el lanzamiento del proyecto
8. Verificación de formulario y visualización de informes
Algunas cosas se agregan más adelante, que AJAX actualiza dinámicamente la cantidad de productos en el carrito de compras, la verificación de los formularios y la visualización de informes.
El número de productos en la actualización dinámica del carrito de compras es la tecnología Pure Ajax. Lo acabo de aprender. La verificación de la forma es principalmente el formulario de inicio de sesión. No inicié sesión en este proyecto, pero hice un formulario de inicio de sesión y la función de verificación también se realiza. El uso principal es el complemento de verificación Validate de jQuery. Este complemento sigue siendo muy poderoso. Puede agregar directamente el formulario de inicio de sesión al proyecto y establecer el salto correspondiente. El uso principal de JSCHART para la visualización de informes es JSCHART. Esta herramienta es muy útil y puede generar el código JS de respuesta. Lo que debemos hacer es enviar solicitudes de AJAX al backend, recuperar datos del backend de acuerdo con las necesidades reales y pasarlo al interfaz para mostrarlo con la tabla JSChart.
Enumeré las publicaciones de blog en esta sección a continuación:
Utilice la tecnología AJAX para actualizar parcialmente la cantidad del producto y el precio total del complemento de verificación JQuery-Validate para mostrar informes de ventas de productos en segundo plano utilizando la tecnología JSCHART
Este es el proyecto de centro comercial en línea que ha escrito tanto. El código fuente en el canal de descarga CSDN se sincroniza con mi blog. Si lo necesita, puede descargar el código fuente que cargué en CSDN (gratis ~ Todos mis recursos son gratuitos). Si quiero seguir mejorando más tarde, lo pondré en mi Github. Todos también son bienvenidos a seguir mi proyecto estrella de GitHub (aunque es promedio ~) que cargué ~ La siguiente es la dirección de descarga específica:
Descargar dirección (sincronizar con contenido del blog)
Dirección de descarga de GitHub (si hay una actualización más adelante, se colocará aquí)
Dirección original: http://blog.csdn.net/eson_15/article/details/51479994#download
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.