0. Schreiben Sie vorne
Freundliche Tipps: Die Download -Adresse ist unten.
Das Projekt wurde im Grunde abgeschlossen. Mit dieser Zusammenfassung habe ich 30 Blogs geschrieben, die sich auf dieses Projekt beziehen, die sich viel angesammelt haben. Der Prozess des Schreibens eines Blogs ist ein Prozess der Festigung von Ideen. Es ist sehr nützlich für mich und kann auch anderen helfen. Übrigens wird es im Lernprozess definitiv viele Ausnahmen geben. Das erste, was wir tun müssen, ist, diese Ausnahme zu finden. Im Allgemeinen folgt einer oder mehreren durch: xxx von der Ausnahme. Dies sind die Ursachen der Ausnahme. Im Allgemeinen suchen wir nach dem durch den Boden verursachten, was oft die Wurzel des Problems ist. Wenn Sie es nicht selbst lösen können, können Sie bei Google oder Baidu suchen (veröffentlichen Sie bei der Suche nicht viele Anomalien, achten Sie auf die Schlüsselteile!). Im Allgemeinen sind 99,9% der Probleme, auf die wir begegnet sind, von unseren Vorgängern gestoßen, und im Grunde können alle gelöst werden. Ich mache dies im Grunde, wenn ich auf Probleme stoße, die nicht gelöst werden können. Wenn ich sie selbst mehr löste, werde ich es fühlen ~ schließlich hoffe ich, dass jeder beim Lesen meines Blogs etwas gewinnen wird!
Ich werde keinen Unsinn sagen. Fassen wir das Projekt dieses Online -Einkaufszentrums unten zusammen. Ich werde nicht alles abdecken. Es ist hauptsächlich in mehrere Module unterteilt, um zusammenzufassen, einschließlich der verwendeten Technologien usw. Ich werde einen kurzen Link zu den spezifischen Details im Artikel anschließen. Sie können einen bestimmten Artikel überprüfen.
Wenn Sie dieses Projekt abrufen, kann es in diese Hauptmodule unterteilt werden:
--- Aufbau der Projektumgebung
--- Erstellen Sie ein Backend-Management-System
--- Erstellen Sie eine Seite "Rezeption Display"
--- Einkaufswagenbezogene Funktionen
--- Online-Zahlungsfunktion
--- Senden Sie E-Mail- und Textnachrichten
--- Domainnamen-Anwendungs- und Projektbereitstellung
--- Formularüberprüfung und Berichtsanzeige
Das Folgende ist eine spezifische Analyse für jedes Modul.
1. Bau des Projektumfelds
Dies ist eine unverzichtbare Verbindung in jedem Projekt, und es wird viele unordentliche Probleme geben. Als ich anfing, SSH zu lernen, hatte ich immer Mühe, die Umwelt aufzubauen, weil ich nicht sehr geschickt war, aber ich wollte sie nur "rhythmisch" bauen. Das heißt, das Erstellen eines Umweltprojekts erfordert Schritt für Stück Schritt für Stück. Viele Leute importieren alle JAR -Pakete in sie, schreiben alle Konfigurationsdateien oder fügen sie von anderen Stellen ein und führen sie dann aus und hängen Sie sie dann auf ... und finden Sie dann verschiedene Probleme. Warum sich die Mühe machen? Auf diese Weise können Sie es nicht einfach tun, wenn Sie es 10 Mal bauen. Sie müssen Reis in einem Bissen essen und Schritt für Schritt gehen.
Der Prozess, den ich persönlich für die SSH -Umweltkonstruktion befolge, lautet:
Feder> Hibernate> Federintegration Hibernate> Struts2> Federintegration Struts2
Schreiben Sie nach jedem Schritt einen Test -Test. Dies ist sehr wichtig, denn wenn Sie Schritt für Schritt gehen, wissen Sie, wohin Sie gehen müssen, wenn Sie einen Fehler machen und wo Sie das Problem finden müssen. Das Wichtigste ist, dass es einfach sein wird, die Umgebung beim nächsten Mal zu schaffen, wenn Sie diesen Prozess kompetent machen. Weitere Informationen zur SSH -Umweltkonstruktion finden Sie im folgenden Artikel:
Integrieren Sie Struts2, Hibernate4.3 und Spring4.2
Grundlegende Addition, Löschung, Suche und Änderung, Extraktion von Dienst und Aktion und Ersetzung von XML durch Anmerkungen
2. Erstellen Sie ein Backend -Management -System
Ich benutze Easyui, um das Backend -Management -System zu erstellen. Um ehrlich zu sein, habe ich nur ein wenig Verständnis für Easyui. Ich weiß nicht viel über die Front-End-Dinge, aber ich verstehe ein bisschen. Ich habe sie auch alle überprüft, wenn ich sie benutze. Ich habe sie nicht systematisch gelernt, daher habe ich kein gutes Wissenssystem, aber es hat keinen Einfluss auf das Spiel. Programmierer sagen gerne, dass sie eine Technologie spielen und sie klingen ziemlich hochwertig. Ich war allmählich betroffen und sage das gerne, aber ich spiele wirklich mit dem Front-End ...
JQuery Easyui ist eine Sammlung von UI-Plug-Ins, die auf JQuery basieren, und das Ziel von JQuery Easyui ist es, Webentwicklern dabei zu helfen, eine UI-Oberfläche zu erstellen, die reich an Funktionen und wunderschön ist. Entwickler müssen weder komplexes JavaScript schreiben, noch müssen sie ein detailliertes Verständnis der CSS-Stile haben. Alle Entwickler müssen wissen, dass einige einfache HTML -Tags sind.
Easyui -Anfragen sind alle AJAX -Anfragen, und es werden keine neuen Seiten angezeigt. Sie befinden sich alle auf der Registerkarte "Registerkarte" oder ein Fenster wird angezeigt. Das Backend -Management -System ist hauptsächlich in drei Teile unterteilt: Produktkategorienmanagement, Produktmanagement und Vertriebsmanagement. Das Vertriebsmanagement ist zuletzt.
2.1 Produktkategoriemanagement
Dieser Teil umfasst hauptsächlich die Konstruktion von EasyUi -Umgebungen und Hintergrund -Framework, Kaskadierung von Abfragen und Paginierung von Datenbanken, DataGrid -Datenanzeige, Struts2 -Integration JSON und Produktkategorien Addition, Löschung, Aktualisierung und Suche. Dies folgt auch einer Folge von Abschlüssen in diesem Abschnitt.
DataGrid zeigt Daten in Form einer Tabelle an, und Entwickler müssen nicht über ein spezifisches Wissen verfügen, um sie zu bedienen. Es hat eine gute Hilfsdokumentation und ist detaillierter. In diesem Projekt habe ich auch verschiedene Möglichkeiten zum Erstellen von DataGrid eingeführt und kurz einige der Eigenschaften von DataGrid eingeführt. Es ist ein Anfang. Ich bin auch ein Einführungswerkzeug. Nur wenn ich mehr entwickle, kann ich diese Technologie beherrschen.
Die Addition-, Lösch-, Aktualisierungs- und Suchfunktionen der Kategorien verwenden hauptsächlich die mit EasyUi gelieferte Überprüfungsfunktion. Überprüfen Sie beim Hinzufügen von Produktkategorien, ob die Eingabe im Eingangsfeld korrekt ist, ob es erforderlich ist, usw.; ob eine bestimmte Zeile oder mehrere Zeilen beim Löschen zuerst ausgewählt werden; Bei der Aktualisierung kann jeweils nur eine Zeile aktualisiert werden. Alle sind AJAX -Anfragen.
Für weitere Informationen zu diesem Teil habe ich ihn bereits klassifiziert. Weitere Informationen finden Sie in diesen Artikeln:
Verwenden Sie EasyUi, um ein Backend -Seitenframework zu erstellen. EasyUi -Menü zum Implementieren von Kaskadierabfragen und Paginierung von Datenbanken. Die DataGrid -Datenanzeigefunktion Struts2 und JSON Integrated DataGrid, um Abfragen und Löschen der Funktion DataGrid zu implementieren, um das Additions- und Aktualisierungsfunktion DataGrid zu implementieren, um die Funktion und Aktualisierungsfunktion zu implementieren
Hier sind die Probleme, auf die ich gestoßen bin:
Lazy Loading -Ausnahmeproblem in Struts2 und JSON Integration Hibernate4 Execution Save () oder Update () ist ungültig
2.2 Produktmanagement
Das Produktmanagement umfasst auch Operationen wie das Hinzufügen und Löschen, was dem Kategoriemanagement entspricht. Es gibt eine Sache, die Produkte hinzufügt und Fotos von Produkten hochladen muss. Dies beinhaltet die Funktion von Struts2, um Datei -Uploads zu implementieren. Wir müssen einen Ordner auf der Serverseite erstellen, um hochgeladene Dateien zu speichern, und dann ein Modell zum Empfangen von Dateien schreiben. In Bezug auf das Datei -Upload müssen wir eine Tool -Klasse speziell schreiben. So ist die Entwicklung im Projekt. Der gemeinsame Code muss extrahiert werden, auch wenn nur ein Code -Satz vorhanden ist, muss er extrahiert werden! Dies ist eine Gewohnheit und muss getan werden. Weitere Informationen finden Sie in den unten aufgeführten Artikeln:
Das Grundmodul der Produktkategorie wird erstellt und die Produktfunktion abfragt und löscht. Die Implementierung der Produktfunktion wird implementiert. Die Implementierung der Datei -Upload -Funktion wird implementiert.
3. Erstellen Sie eine Seite "Rezeption Display"
Natürlich wurde die Front-End-Seite von mir nicht entworfen. Ich habe einige Back-End-Technologien zusammengefasst, die sich auf das Front-End-Display beziehen, wie z.
Als ich Servlet lernte, habe ich so die Homepage -Anzeigedaten gemacht. Ich habe einen Rahmen verwendet und die Daten rechts angezeigt. Dann sprang ich zu einem Servlet auf dem richtigen Teil in Index.jsp und ging dann zum Servlet, um alle Produkte aus der Datenbank herauszunehmen, sie in das Feld Anforderungsfeld zu stecken und die neue JSP -Seite zur Anzeige zu bringen. Obwohl dies erreicht werden kann, ist es sehr dumm. Hier habe ich einen Zuhörer verwendet, um dies zu tun. Zuerst habe ich selbst einen Hörer definiert, und als das Projekt startete, nahm ich alle Produktinformationen in der Datenbank heraus, stellte sie in die Anwendungsdomäne ein und verwendete dann direkt El Ausdrücke, um ihn von der Anwendungsdomäne auf der Homepage abzurufen.
Es gibt ein anderes Problem. Wenn ich dem Managementsystem ein neues Produkt hinzufüge, muss ich Tomcat neu starten, um das neue Produkt zur Anwendungsdomäne hinzuzufügen. Da es nach dem ersten Mal in der Anwendungsdomäne war, ist es entschlossen, zu sterben. Das neu hinzugefügte später ist nicht in der Anwendungsdomäne. Um dieses Problem zu lösen, habe ich einen Timer verwendet, um die Homepage -Daten zu synchronisieren. Also habe ich den Hörer, den ich zuvor geschrieben habe, umgeschrieben, einen Timer im Hörer festgelegt, den Code eingelegt, um die Daten des Produkts in der Datenbank in die Timer-Aufgabe zu erhalten, und ihn zum ersten Mal sofort ausführen, und es dann alle 6 Stunden ausführen (die Zeit kann für sich selbst eingestellt werden), dh die Produkte in der Datenbank alle 6 Stunden und speichern Sie alle 6 Stunden und speichern Sie sie in der Anwendungsdomänen. Dies ist, was die allgemeine Website tut, wie die persönliche Blog -Homepage von CSDN wird das Ranking jeden Tag aktualisiert. Wahrscheinlich gegen 22 Uhr habe ich die spezifische Zeit vergessen. Zu diesem Zeitpunkt wird bei der Aktualisierung das Datenaktualisierung angezeigt, wodurch auch der Druck auf den Server reduziert wird.
In diesem Abschnitt finden Sie spezielle technische Details unter folgenden Artikel:
Verwenden Sie den Hörer, um die Daten auf der Startseite anzuzeigen. So erhalten Sie den Feder -Konfigurationsdatei -Thread, Timer -Timing -Synchronisation Homepage Daten Hibernate Secondary Cache Processing Startseite Beliebtes Display
4. Einkaufswagenbezogene Funktionen
Zu den Haupttechnologien, die im Einkaufswagen beteiligt sind, gehören: die Hintergrundverarbeitung der Logik von Einkaufswagen und Einkaufsgegenständen, Filterurteilsmeldung, Kaskadierungsaufträge in die Datenbank und das Abspannen von Seiten.
Für Einkaufswagen enthält es hauptsächlich eine Implementierungslogik im Backend. Es gibt Einkaufsgegenstände im Einkaufswagen. Was bedeutet es? Wir alle wissen, dass wir, wenn wir Dinge auf Tmall kaufen, verschiedene Produkte in den Einkaufswagen stecken können, und dann gibt es viele Produkte im Einkaufswagen, und jedes Produkt kann mehrere Mengen haben. Jedes Produkt und seine damit verbundenen Informationen sind ein Einkaufsgegenstand. Beim Hinzufügen eines Einkaufswagens müssen wir daher zuerst einen Einkaufsgegenstand ausfüllen und dann diesen Einkaufsgegenstand in den Einkaufswagen hinzufügen.
Wenn sich ein Benutzer niederlassen möchte, müssen wir zunächst feststellen, ob sich der Benutzer angemeldet hat. Dadurch wird die Filtertechnologie verwendet, die speziell einen bestimmten URL -Typ filtert und feststellt, ob in der aktuellen Sitzung im Filter ein Benutzerobjekt vorhanden ist. Wenn es einen Hinweis darauf gibt, dass Anmeldung angemeldet wurde, füllen Sie es einfach direkt los. Wenn nicht, springen Sie zur Anmeldeseite, um sich der Benutzer anzumelden. Springen Sie nach dem Anmelden zu der Seite, die der Benutzer ursprünglich wollte. Es ist wie ein Portier ~ in die Tür schauen ~
Wie gerade erwähnt, enthalten die Bestellinformationen Einkaufswagen und Einkaufsgegenstände. Wenn wir die Bestellungen eingeben, müssen wir ihre kaskadierenden Probleme berücksichtigen. Wir können die entsprechenden Annotationsattribute in den Pojos der beiden festlegen. Es gibt jedoch eine Voraussetzung. Wenn es beispielsweise eine Fremdschlüsselkorrelation gibt, müssen den Feldern im fremden Schlüsselteil des entsprechenden Pojo vor dem Eintritt in das Pojo einen guten Wert zugewiesen werden. Beispielsweise muss die Bestellung in die Werbebuchung hinzugefügt werden, und die Bestellattribute im Werbemittel müssen ebenfalls einen guten Wert zugewiesen werden, bevor sie an Winterschlaf übergeben werden können. Hibernate kaskadiert sie gemäß den konfigurierten Anmerkungen (oder XML -Dateien) in die Bibliothek.
Das Problem mit dem Caching von Seite bezieht sich darauf, wenn der Benutzer die Bestellung bestätigt und er zurückklickt, kehrt er zur Bestellbestätigungsseite zurück. Die Auftragsbestätigungsseite erscheint gerade noch einmal und die Sitzung ist noch vorhanden, und die Informationen sind noch die Informationen. Dies ist offensichtlich nicht das Ergebnis, das wir wollen. Wir müssen es gleichzeitig in der Rezeption und im Backend verarbeiten.
In diesem Abschnitt finden Sie die folgenden Artikel für bestimmte technische Details:
Implementierung grundlegender Funktionen des Einkaufswagen -Filter
5. Online -Zahlungsfunktion
Dieser Teil führt hauptsächlich über einige Dinge über die Yibao -Zahlungsschnittstelle ein. Tatsächlich sind Online -Zahlungsfunktionen für verschiedene Dritte unterschiedlich. Der Hauptzweck besteht darin, einen Prozess der Entwicklung der Online -Zahlungsfunktion zu verstehen. Die spezifischen technischen Details hängen von den Informationen ab, die von den jeweiligen Dritten bereitgestellt wurden. Der allgemeine Prozess lautet jedoch: Aufrufen der Schnittstelle des Dritten> Aufrufen der Bankschnittstelle> Ausschluss der Zahlung> Der Dritte springt auf die von uns angegebene Seite zurück.
Dieser Teil beinhaltet auch eine wichtige Technologie, weshalb Struts2 mehrere Modellanforderungen abwickelt. Im Allgemeinen kann Struts2 das Modell in Aktion nach der Implementierung modedriven <modell> verwenden, aber was ist, wenn es jetzt zwei Modelle gibt? Es gibt eine andere Schnittstelle namens ParametersAware in Struts2. Solange diese Schnittstelle implementiert ist und eine Karte, die Parameter speichert, definiert ist, kann sie alle Parameter in der Anforderungsanforderung empfangen. Wir können beurteilen, welches Modell anhand verschiedener Parameter verwendet werden soll. Diese Methode kann das Problem von Struts2 lösen, die mehrere Modellanforderungen bearbeiten.
In diesem Abschnitt finden Sie technische Details unter den folgenden Blog -Beitrag:
Eine Einführung in die Online -Zahlungsplattform, eine Demo des Yibao -Zahlungsprozesses
Holen Sie sich die Anzeige von Bank -Symbolen und Zahlungsseiten, um die Logik der Online -Zahlungsfunktion zu vervollständigen, um mehrere Modellanforderungen in Struts2 zu bearbeiten
6. E -Mail- und SMS -Funktionsfunktion
Das Senden von E -Mails und das Senden von Textnachrichten ist relativ einfach. Sie sind beide feste APIs, wissen einfach, wie man sie benutzt. Überprüfen Sie sie einfach und ich kann mich auch nicht an sie erinnern. Die E -Mail -Sendungsfunktion muss das mail.jar -Paket importieren und dann E -Mails gemäß dem Vorgang senden. Die SMS -Funktion muss zunächst die SMS -Sendungsfunktion beantragen. Nach Abschluss des Antrags wird uns der Dritte einige API -Schnittstellen zur Verfügung stellen. Wir können die SMS -Sendungsfunktion entwickeln, solange wir sie beziehen. Es ist der Zahlungsfunktion etwas ähnlich, und alle sind auf Plattformen von Drittanbietern angewiesen.
Es gibt keine technischen Schwierigkeiten in diesem Teil, hauptsächlich im Prozess, die zugehörigen Artikel sind wie folgt:
Senden Sie die SMS -Funktion, nachdem eine erfolgreiche Bestellzahlung mit Java -E -Mail an Benutzer abgeschlossen ist
7. Anwendung für Domain -Namespace und Bereitstellung sowie Veröffentlichung von Projekten
In diesem Abschnitt wird hauptsächlich eingeführt, wie man einen kostenlosen Domain -Namensraum beantragt (nur 15 Tage lang kostenlos ~, aber zum Lernen genug ~). Obwohl nicht alle frei sind, müssen wir diesen Prozess hauptsächlich herausfinden. Es ist besser, es selbst durchzugehen. Es muss nicht unbedingt ein vollständiges Projekt hochladen. Eine JSP -Seite oder eine statische HTML -Seite ist in Ordnung.
Es gibt zwei Hauptmethoden, um ein Projekt bereitzustellen und zu veröffentlichen: Eine soll mit FTP hochladen, aber dies ist langsam und kann Daten verlieren. Persönliche Erfahrung besteht darin, es Stück für Stück auszugeben. Eine andere Möglichkeit besteht darin, einen Domain -Namensraum zu beantragen, um eine Bereitstellungsumgebung bereitzustellen. Wir müssen das Projekt nur als Kriegspaket exportieren und dann das Kriegspaket einsetzen.
Es gibt viele Details, auf die Sie vor der Projektbereitstellung achten müssen, z. B. Änderungen einiger Pfade, Änderungen einiger Daten usw. Diese Details werden in meinem Blog ausführlich erläutert. Dieser Abschnitt enthält einen Artikel wie folgt:
Anwendung für Domain -Namensraum und Bereitstellung und Veröffentlichung des Projekts
8. Formularüberprüfung und Berichtsanzeige
Einige Dinge werden später hinzugefügt, bei denen Ajax die Produktmenge im Einkaufswagen, die Überprüfung der Formulare und die Anzeige von Berichten dynamisch aktualisiert.
Die Anzahl der Produkte im dynamischen Einkaufswagen ist die reine AJAX -Technologie. Ich habe es gerade gelernt. Die Überprüfung des Formulars ist hauptsächlich die Anmeldeform. Ich habe mich in diesem Projekt nicht angemeldet, aber ich habe ein Anmeldeformular erstellt und die Überprüfungsfunktion wird ebenfalls durchgeführt. Die Hauptverwendung ist das Validierungsüberprüfungs-Plug-In von JQuery. Dieses Plug-In ist immer noch sehr leistungsfähig. Sie können das Anmeldeformular direkt zum Projekt hinzufügen und den entsprechenden Sprung festlegen. Die Hauptverwendung von JSchart für die Anzeige von Berichten ist JSchart. Dieses Tool ist sehr nützlich und kann Reaktions -JS -Code generieren. Wir müssen AJAX -Anfragen an das Backend senden, Daten nach den tatsächlichen Anforderungen aus dem Backend abrufen und an den Frontend weitergeben, um sie mit JSchart -Diagramm anzuzeigen.
Ich werde die Blog -Beiträge in diesem Abschnitt unten auflisten:
Verwenden Sie die AJAX-Technologie, um die Produktmenge und den Gesamtpreis teilweise zu aktualisieren.
Dies ist das Online -Mall -Projekt, das so viel geschrieben hat. Der Quellcode im CSDN -Download -Kanal wird mit meinem Blog synchronisiert. Wenn Sie es benötigen, können Sie den Quellcode, den ich in CSDN hochgeladen habe, herunterladen (kostenlos ~ alle meine Ressourcen sind kostenlos). Wenn ich es später weiter verbessern möchte, werde ich es in meinen GitHub stecken. Jeder ist auch herzlich eingeladen, meinem GitHub zu folgen (obwohl es durchschnittlich ist ~) Sternprojekt, das ich hochgeladen habe ~ Folgendes ist die spezifische Download -Adresse:
Adresse herunterladen (synchronisieren Sie mit Blog -Inhalten)
GitHub -Download -Adresse (wenn später ein Update vorhanden ist, wird sie hier platziert)
Originaladresse: http://blog.csdn.net/eson_15/article/details/51479994#download
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.