Managementsystem basierend auf SSH-Framework (einschließlich Java-Quellcode + Datenbank)

Link zum Herunterladen der Daten

einführen

Eine prägnante Version des Managementsystems basierend auf dem SSH-Framework   ;

Anmeldung  ,  Registrierung  ,  Hinzufügung  ,  Löschung  ,  Änderung  und  Abfrage realisieren   ;

Kann das Frontend, die Überprüfung, andere Funktionen usw. weiter verbessern und hinzufügen;

 Kann als Basismodell für SSH- Projektentwicklungsübungen (Structs Spring Hibernate) verwendet werden  ;

Curriculum-Design  ,  Abschluss-Design-  Entwicklungsbasis;

Jedes komplexe Framework ist eine Kombination und Erweiterung einfachen Wissens, und das Erlernen der Grundlagen ist das Wichtigste;

Dieses Projekt ist einfach, die Grundprinzipien sind leicht verständlich und legen den Grundstein für die Entwicklung komplexer SSM-Projekte.

Umweltvorbereitung

Entwicklungsplattform: Idea 2019

Datenbank: MySQL 5.0.22

Server: Tomcat 9.0.37

Hinweis: Die IDEA-Entwicklungsplattform, die MySQL-Datenbank und der Tomcat-Server müssen installiert sein. Die Versionen sind möglicherweise nicht genau gleich. Machen Sie bei der versionierungsadaptiven Konfiguration einfach gute Arbeit.

Projektstruktur

1. Datenbank- und Java-Codedateien 

Geben Sie eine Bildbeschreibung ein

2. JSP und anderer Front-End-Code 

Geben Sie eine Bildbeschreibung ein

3. Konfiguration und Betrieb des Tomcat-Servers

Geben Sie eine Bildbeschreibung ein

4. MySQL-Datenbank 

Geben Sie eine Bildbeschreibung ein

Grundlegend

1. Verwandte Technologien

Strukturen

1. Prinzip der Strukturen1

1. Structs1-Schema

Geben Sie eine Bildbeschreibung ein

2. Structs1-Prinzipschritte

Der Benutzer gibt Daten auf der Ansichtsebene ein.

Der erste Schritt: Der allgemeine Controller des Structs-Frameworks initialisiert und beginnt mit dem Lesen der Datei strusts-config.xml. ActionServlet, der Hauptcontroller des Struts-Frameworks, ist ein im Web konfiguriertes Servlet. Das Modul initialisiert das entsprechende Objekt. (objektorientiertes Denken)

Schritt 2: Die Ansichtsschicht sendet eine HTTP-Anfrage an den allgemeinen Controller, der Benutzer sendet ein Formular oder eine Anfrage über die URL an den Webserver und die angeforderten Daten werden über das HTTP-Protokoll an den Webserver übertragen

Der dritte Schritt: Ausfüllen des Formulars; ActionServlet, der allgemeine Controller von Strukturen, fügt die Daten in die Mitgliedsvariable im entsprechenden Formularobjekt ein, wenn der Benutzer die Anfrage sendet.

Schritt 4: Senden Sie die Anforderung. Der Controller sendet die Anforderung gemäß den Konfigurationsinformationen und dem Objekt ActionConfig an die spezifische Aktion, und die entsprechende formBean wird an die Methodeexecute() in der Aktion übergeben.

Schritt 5: Geschäftsabwicklung; Die Aktion umfasst im Allgemeinen nur eine Methode „execute()“, die für die Ausführung der entsprechenden Geschäftslogik (Aufruf anderer Geschäftsmodule) verantwortlich ist und nach Abschluss ein ActionForward-Objekt zurückgibt. Der Server leitet die Arbeit über das ActionForward-Objekt weiter.

Schritt 6: Eine Antwort zurückgeben; Die Aktion gibt ein Zielantwortobjekt mit unterschiedlichen Ergebnissen der Geschäftsverarbeitung an den allgemeinen Controller zurück.

Schritt 7: Finden Sie die Antwort. Der allgemeine Controller findet das entsprechende Ressourcenobjekt gemäß dem vom Aktionsverarbeitungsgeschäft zurückgegebenen Zielantwortobjekt, bei dem es sich im Allgemeinen um eine JSP-Seite handelt.

Schritt 8: Dem Benutzer antworten; das Zielantwortobjekt übergibt das Ergebnis an das Ressourcenobjekt und präsentiert das Ergebnis dem Benutzer.

3. Vor- und Nachteile von Strukturen

Vorteil:

	①Open-Source-Framework mit klarer Struktur

	② ist die klassische Implementierung von MVC (MVC ist eine Idee, keine Technologie)

	③ Behandeln Sie den Ausnahmemechanismus, um eine Internationalisierung zu erreichen

	④ verfügt über eine leistungsstarke Tag-Bibliothek

	⑤ Lösen Sie das Problem, dass die JSP-Seite viele JAVA-Codes enthält, was einfach zu warten ist

	⑥Es wird automatisch in formBean übermittelt und verwendet nicht die herkömmlichen Get- und Set-Methoden, um den Wert abzurufen und den Wert zu übernehmen

Mangel:

	①Komplizierte Konfiguration

	②Das Testen ist unpraktisch

	③Abhängig vom Webcontainer

	④Aktion ist ein Singleton-Modus und muss als Thread-sicher eingestellt werden

Zweitens: Structs2-Prinzip

1. Structs2-Schema

Geben Sie eine Bildbeschreibung ein

2. Struct2-Prinzipschritte

Schritt 1: Der Client initiiert eine Anfrage an einen Servlet-Container (z. B. Tomcat).

Schritt 2: Die Anfrage durchläuft eine Reihe von Filtern (Filter)

Schritt 3: Dann wird der FilterDispatcher aufgerufen und der FilterDispatcher fragt den ActionMapper, ob er eine Aktion aufrufen muss

Schritt 4: Wenn ActionMapper beschließt, eine Aktion aufzurufen, übergibt FilterDispatcher die Verarbeitung der Anfrage an ActionProxy

Schritt 5: ActionProxy fragt die Konfigurationsdatei des Frameworks über den Konfigurationsmanager ab, um die Aktionsklasse zu finden, die aufgerufen werden muss

Schritt 6: ActionProxy erstellt eine Instanz von ActionInvocation

Schritt 7: Die ActionInvocation-Instanz wird mithilfe des Namensmusters aufgerufen, das den Aufruf des entsprechenden Interceptors (Intercepter) vor und nach dem Aufrufvorgang der Aktion beinhaltet

Schritt 8: Sobald die Aktion ausgeführt wird, ist ActionInvocation dafür verantwortlich, das entsprechende Rückgabeergebnis gemäß der Konfiguration in struts.xml zu finden. Das zurückgegebene Ergebnis ist normalerweise (aber nicht immer, es kann sich um eine andere Aktionskette handeln) eine JSP- oder FreeMarker-Vorlage, die dargestellt werden muss. Vom Struts2-Framework geerbte Tags können im Darstellungsprozess verwendet werden. ActionMapper muss in diesen Prozess einbezogen werden

Hinweis: Alle Objekte (Aktion, Ergebnisse, Interceptoren usw.) im obigen Prozess werden über ObjectFactory erstellt

3. Vor- und Nachteile von Structs2

Vorteil:

①Eine große Anzahl von Interceptoren: Struts2 selbst bietet eine große Anzahl wiederverwendbarer Interceptoren, z. B. Typkonvertierungs-Interceptoren, die häufig Parameter von der Seite erhalten. Derzeit ist es vom Typ String und muss manuell bedient werden.

② Plug-in-basiertes Framework: Struts2 ist ein Plug-in-basiertes Framework. Die Community stellt viele nützliche Plug-ins wie jfreechat/json usw. zur Verfügung. Die Verwendung dieser Plug-ins kann unsere Entwicklung vereinfachen und den Entwicklungsfortschritt beschleunigen . Der größte Nachteil von Struts2 besteht darin, dass es auf vielen Webservern nicht gut unterstützt wird. Beispielsweise unterstützen websphere5.5, weblogic8.1 und frühere Versionen sehr schwierige Prüfungen, und die neuesten müssen verwendet werden.

③Unterstützung mehrerer Ansichten: Unterstützung mehrerer Ansichten: JSP, Freemarker, Veloctiy und sogar PDF-Unterstützung durch einfache Transformation, und mehrere Ansichten können im selben Projekt unterstützt werden.

④ Stärkere Modularisierung: Im Vergleich zu Struts1.X ist Struts2 modularer und kann Konfigurationsinformationen entsprechend funktionaler Grenzen problemlos in mehrere Dateien aufteilen, was für die Entwicklung von Management und Teamzusammenarbeit praktisch ist.

⑤ Integration mit Spring: Im Vergleich zu Struts1.x muss Struts2 kein Singleton selbst schreiben, was die Kopplung zwischen Programmen weiter verringert. Was Struts2 selbst betrifft, verringert es die Kopplung des Frameworks selbst.

⑥Einfache Tests basierend auf Pojo: In Struts1.x müssen diese beiden HTTP-Objekte verspottet werden, und es ist schwierig, Action-Unit-Tests zu schreiben. Es ist bequemer, Unit-Tests für Action zu schreiben.

Mangel:

① Es ist mühsam, die von JSP in Action in Struts2 übergebenen Parameter abzurufen. Getter- und Setter-Methoden können für die Eigenschaften in der Aktion von Struts2 konfiguriert werden, und die Anforderungsparameter können über den Standard-Interceptor auf diese Eigenschaften festgelegt werden. Wenn jedoch viele Anforderungsparameter vorhanden sind, wird die Action-Klasse aufgebläht. Die Attribute in Action können nicht nur zum Abrufen von Anforderungsparametern verwendet werden, sondern können auch an Jsp ausgegeben werden, was chaotischer ist.

② Die Überprüfung ist umständlicher. Wenn die Überprüfung falsch ist, können dem Benutzer nur einige Informationen angezeigt werden. Wenn mehrere Felder vorhanden sind und jedes Feld bei Auftreten eines Fehlers zu einem anderen Bildschirm zurückkehrt, ist die Implementierung unter dem Strut2-Framework mithilfe der vom Framework bereitgestellten Validierungslogik nicht einfach.

③Die Sicherheit muss verbessert werden. Eine Sicherheitslücke bezüglich Remotecodeausführung bei Verwendung des abgekürzten Navigationsparameterpräfixes und eine Sicherheitslücke bei der offenen Umleitung bei Verwendung des abgekürzten Umleitungsparameterpräfixes.

Frühling

1. Einleitung

Spring ist ein Open-Source-Framework, ein leichtes Java-Entwicklungsframework, das 2003 auf den Markt kam und entwickelt wurde, um die Komplexität der Entwicklung von Unternehmensanwendungen zu lösen. Einfach ausgedrückt ist Spring ein leichtes Inversion of Control (IOC) und Aspect-Oriented (AOP) Container-Framework. In der täglichen Entwicklung werden IOC-Container häufig verwendet, und Beans können geladen werden, dh Klassen in Java, und müssen nicht jedes Mal initialisiert werden, wenn eine Klasse verwendet wird, und das Schlüsselwort new erscheint selten. Darüber hinaus werden auch Springs AOP, Transaktionsmanagement usw. häufig verwendet.

IOC: Inversion of Control ist eine Designidee zur Reduzierung der Kopplungsbeziehung zwischen Objekten. Zum Beispiel: Wenn Sie ein Haus mieten möchten, müssen Sie normalerweise selbst nach Häusern suchen. Nachdem Sie das IOC verwendet haben, müssen Sie eine Vermietungsagentur finden, dem Vermittler die Wohnungsnachfrage mitteilen und können dies direkt tun ein passendes Haus finden. Das heißt, die Anforderungen werden an einen Dritten übergeben, und der Dritte hilft Ihnen bei der Erfüllung Ihrer Anforderungen. Der Vermittler entspricht dem Spring-Container.

AOP: Aspektorientierte Programmierung ist eine Ergänzung zur objektorientierten Entwicklung und ermöglicht es Entwicklern, das Modell dynamisch an neue Anforderungen anzupassen, ohne das ursprüngliche Modell zu ändern, z. B. dynamisch Protokolle hinzufügen, Sicherheit oder Ausnahmebehandlung usw. AOP reduziert den Kopplungsgrad zwischen verschiedenen Teilen der Geschäftslogik, verbessert die Wiederverwendbarkeit von Programmen und verbessert die Entwicklungseffizienz.

2. Die Hauptmerkmale von Spring

①Leichtgewicht: Spring ist ein leichtes Entwicklungsframework, die Basisversion ist nur etwa 2 MB groß

②IOC: Inversion of Control, die Abhängigkeiten zwischen Objekten in der Anwendung werden von Spring gesteuert

③AOP: Aspektorientierte Programmierung. Spring unterstützt aspektorientierte Programmierung, sodass Geschäftslogik und Systemdienste getrennt und getrennt werden können

④Container: Enthält und verwaltet den Lebenszyklus und die Konfigurationsinformationen von Objekten in der Anwendung

⑤ MVC-Idee: Spring ist ebenfalls ein Framework, das auf der MVC-Idee basiert und auch den drei Ebenen des Model-View-Controllers folgt

⑥Transaktion: Spring bietet eine kontinuierliche Schnittstelle, die von lokalen Angelegenheiten auf globale Angelegenheiten erweitert werden kann

⑦Ausnahmebehandlung: Spring bietet eine praktische API zum Konvertieren bestimmter technologiebezogener Ausnahmen (z. B. von JDBC, Hibernate oder JDO ausgelöste) in konsistente, ungeprüfte Ausnahmen.

3. Vor- und Nachteile des Frühlings

Vorteil:

①Spring kann Ihre Objekte mittlerer Ebene effektiv organisieren.

②Spring kann die übermäßige Verwendung von Singleton eliminieren, die in vielen Projekten üblich ist. Es verringert die Testbarkeit und den objektorientierten Grad des Systems.

③Durch den konsistenten Umgang mit Konfigurationsdateien über verschiedene Anwendungen und Projekte hinweg kann Spring die Notwendigkeit verschiedener benutzerdefinierter Eigenschaftendateien überflüssig machen.

④Indem Spring die Kosten für die Programmierung von Schnittstellen und nicht von Klassen auf nahezu Null reduziert, kann es gute Programmiergewohnheiten fördern. ⑤Spring ist darauf ausgelegt, dass damit erstellte Anwendungen so wenig wie möglich auf seine APIs angewiesen sind. Die meisten Geschäftsobjekte in einer Spring-Anwendung hängen nicht von Spring ab.

⑥ Mit Spring erstellte Anwendungen lassen sich leicht Unit-Tests durchführen.

⑦Spring kann die Verwendung von EJB zu einer Implementierungsentscheidung machen und nicht zu einer unvermeidlichen Wahl der Anwendungsarchitektur. Sie können POJOs oder lokale EJBs verwenden, um Geschäftsschnittstellen zu implementieren, ohne den aufrufenden Code zu beeinträchtigen.

⑧Spring hilft Ihnen, viele Probleme zu lösen, ohne EJB zu verwenden. Spring kann eine Alternative zu EJB bieten, die für viele Webanwendungen geeignet ist. Spring kann beispielsweise AOP verwenden, um eine deklarative Transaktionsverwaltung bereitzustellen, ohne einen EJB-Container zu verwenden, und Sie benötigen nicht einmal eine JTA-Implementierung, wenn Sie nur mit einer einzigen Datenbank arbeiten müssen.

⑨Spring bietet ein konsistentes Framework für den Datenzugriff, unabhängig davon, ob JDBC- oder O/R-Mapping-Produkte (wie Hibernate) verwendet werden.

Mangel:

①Es muss viel Code in JSP geschrieben werden, der Controller ist zu flexibel und es fehlt ein gemeinsamer Controller

②Spring unterstützt keine Verteilung, was einer der Gründe ist, warum EJB immer noch verwendet wird.

Überwintern

1. Das Funktionsprinzip des Ruhezustands

Der erste Schritt: Configuration.config() zum Lesen der XML-Konfigurationsdatei

Schritt 2: Configuration.config() zum Lesen der Zuordnungsinformationen in der Konfigurationsdatei

Schritt 3: Erstellen Sie eine Sitzungsfabrik

Schritt 4: Öffnen Sie die Sitzung

Schritt 5: Starten Sie die Transaktion

Schritt 6: Behalten Sie die Datenbank bei

Schritt sieben: Schließen Sie die Sitzung

Schritt 8: Schließen Sie die Sitzungsfabrik

2. Die Vor- und Nachteile des Winterschlafs

Vorteil:

①hibernate ist ein Open-Source-Framework, das auf der ORMapping-Technologie basiert, JDBC auf einfache Weise kapselt und objektorientiertes Denken zur Manipulation der Datenbank verwendet.

②Hibernate bietet Sitzungscache und sekundären Cache, wodurch die Leistung für Systeme verbessert wird, die keine komplexen Abfragen erfordern.

③Geringes aufdringliches Design

Mangel:

① Der Ruhezustand ist nicht einfach zu erlernen und die Lernkosten sind zu hoch

② Hibernate eignet sich nicht für komplexe Abfragen (Statistiken), da es nicht direkt auf der zugrunde liegenden Datenbank operiert

③Nicht für eine große Anzahl von Aggregationsvorgängen (gespeicherte Prozeduren) geeignet.

2. Grundlagen

SSH ist ein integriertes Framework aus Struts, Spring und Hibernate. Es ist derzeit ein beliebtes Open-Source-Framework für Webanwendungen, mit dem flexible und einfach skalierbare mehrschichtige Webanwendungen erstellt werden.

Der grundlegende Geschäftsprozess des SSH-Build-Systems:

Als Gesamtinfrastruktur des Systems ist Struts für die Trennung von MVC verantwortlich. Im Modellteil des Struts-Frameworks steuert es Geschäftssprünge und nutzt das Hibernate-Framework zur Unterstützung der Persistenzschicht. Einerseits ist Spring als leichter IoC-Container für das Suchen, Lokalisieren, Erstellen und Verwalten von Objekten und Abhängigkeiten zwischen Objekten verantwortlich, andererseits kann es dafür sorgen, dass Struts und Hibernate besser funktionieren.

Das System des SSH-Frameworks ist hinsichtlich der Zuständigkeiten in vier Schichten unterteilt: Präsentationsschicht, Geschäftslogikschicht, Datenpersistenzschicht und Domänenmodulschicht (Entitätsschicht).

Das Projekt des SSH-Frameworks ist im Wesentlichen in drei Ebenen unterteilt:

(1) Struts2: Verantwortlich für die Webschicht

(2) Frühling: Management der Geschäftsschicht

(3) Ruhezustand: Verantwortlich für die Datenpersistenz

Realisieren Sie in der Präsentationsschicht zunächst die interaktive Schnittstelle über die JSP-Seite, die für die Übertragung der Anforderung (Anfrage) und den Empfang der Antwort (Antwort) verantwortlich ist. Anschließend delegiert Struts die von ActionServlet empfangene Anforderung gemäß der Konfigurationsdatei an die entsprechende Aktion ( struts-config.xml).

In der Geschäftsschicht ist der Spring IoC-Container, der die Servicekomponenten verwaltet, dafür verantwortlich, die Aktion mit der Geschäftsmodellkomponente (Model) und der kollaborativen Objektdatenverarbeitungskomponente (DAO) der Komponente bereitzustellen, um die Geschäftslogik zu vervollständigen, und stellt Containerkomponenten wie z B. als Transaktionsverarbeitung und Pufferpool, um die Systemleistung zu verbessern und die Datenintegrität sicherzustellen.

In der Persistenzschicht ist es auf die Objektzuordnung und Datenbankinteraktion von Hibernate angewiesen, um die von der DAO-Komponente angeforderten Daten zu verarbeiten und das Verarbeitungsergebnis zurückzugeben.

Durch die Übernahme des oben genannten Entwicklungsmodells wird nicht nur die vollständige Trennung von Ansicht, Controller und Modell realisiert, sondern auch die Trennung von Geschäftslogikschicht und Persistenzschicht. Unabhängig davon, wie sich das Front-End ändert, sind nur wenige Änderungen an der Modellebene erforderlich, und die Änderung der Datenbank hat keine Auswirkungen auf das Front-End, was die Wiederverwendbarkeit des Systems erheblich verbessert. Darüber hinaus ist es aufgrund der geringen Kopplung zwischen verschiedenen Schichten für Teammitglieder von Vorteil, parallel zu arbeiten, was die Entwicklungseffizienz erheblich verbessert.

Seitenanzeige

1. Anmeldeseite 

Geben Sie eine Bildbeschreibung ein

2. Registrierungsseite 

Geben Sie eine Bildbeschreibung ein

3. Startseite 

Geben Sie eine Bildbeschreibung ein

4. Neue Seite hinzufügen 

Geben Sie eine Bildbeschreibung ein

5. Seite löschen 

Geben Sie eine Bildbeschreibung ein

6. Ändern Sie die Seite 

Geben Sie eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/tianqiquan/article/details/132337721
Recomendado
Clasificación