2016-04-12 7 views
0

Ich bin neu in MVC und ich erstelle gerade das Backend für eine Web-Anwendung mit Servlets. Ich habe gehört, dass die gesamte Verarbeitung in das Modell gehen muss.MVC - überprüfen, ob das Passwort richtig eingegeben wurde

Also in meinem Modell bekomme ich die Daten aus der Datenbank und vergleiche es mit dem Wert, den ich vom Anfrageobjekt erhalten habe.

Nun hat einer meiner Kollegen gesagt, dass diese Logik zur Authentifizierung gehört und somit in den Controller gehen muss.

Ich bin jetzt ziemlich verwirrt und hoffe, dass jemand mir helfen kann, wo man diese Funktionalität tatsächlich setzt. Das Modell oder der Controller.

Prost im Voraus.

+0

Mögliches Duplikat [Überprüfen Passwort onsubmit] (http://stackoverflow.com/questions/8218325/checking -password-onsubmit) – NinjaDeveloper

Antwort

0

Das Modell ist nur eine Klasse, die Ihre DB verbundene Einheit beschreibt. Sie sollten diese Klasse nicht zum Implementieren einer CRUD-Operation verwenden. Sie müssen ein DAO (eine Klasse, die nur Crud-Operationen für bestimmte Klassen ausführt) und einen Controller (Ihr Servlet) verwenden, der dieses DAO verwendet, um db abzufragen.

Die DAO hat Methoden wie

public void save(entity entity); 
public Entity loadById(Long id); 
etc etc... 

Sie haben auf diese Weise zu denken: Wenn Sie eine Aktion ausführen müssen in engen Zusammenhang mit einem Verhalten Bean bezogen (zB um den Gesamtpreis für einen rappresenting Einkauf Bean berechnen Cart) Sie können diese Funktion (Methode) in der Modellklasse implementieren (immer von einem Controller aufgerufen). Alle anderen Funktionen sollten in der Steuerung implementiert werden, die die Funktionslogik verwaltet.

Sie zwischen Modellklassen, Controller-Klassen, Ansicht Klassen unterscheiden, und Persistenz-Klassen (DAO für CRUDS)

+0

Werfen Sie einen Blick auf diesen Artikel: http: //www.javaworld.com/article/2074052/design-patterns/write-once--persist-anywhere.html? page = 2 –

0

Das Modell ist die Daten selbst, in diesem Fall die "Benutzer" oder die "Passwort" -Klasse.

Meiner Meinung nach ist der richtige Ort der Controller: es überprüft, ob Daten korrekt sind (Passwort, Geburtsdatum und so weiter).

Auf diese Weise können Sie Ihr Modell mit einer anderen Logik wiederverwenden, ohne die Klasse "Benutzer" zu ändern. Zum Beispiel können Sie ein einfaches Max-Retry-Versuche System hinzufügen und die Benutzerklasse original

verlassen Aber wenn Sie einen Ajax-Aufruf verhindern wollen,

Verwandte Themen