/ / Korrekter URL-Fluss für Web-Java-Spark-Anwendung - Web, Spark-Framework

Korrekter URL-Fluss für Web Java-Spark-Anwendung - Web, Spark-Framework

Meine Webanwendung wird mit erstellt Spark Framework (Verbindung auf derselben Seite wie der Server herstellen) lautet die URL der ersten Seite http://localhost:4567/start Von hier aus klickt der Benutzer auf eine Schaltfläche, um eine von vier Aufgaben zu bestimmen. Die Formularaktionsschaltfläche ist / start

Der Server überprüft, ob alles in Ordnung ist, und gibt dann die neue Seite für diese Aufgabe (z. B. Fixsongs) (d. H. Den Seiteninhalt als Zeichenfolge zurück) von der Seite zurück.

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page

ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
//Display Page
post(RoutePath.FIX,             (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

Das Problem ist URL bleibt gleichd.h. ist einer dahinter, wo sich der Benutzer befindet

Jetzt habe ich stattdessen herausgefunden, wie ich das lösen kannder Server-Rückgabeseite Es führt jetzt eine Umleitung zu /fixsongs.go durch (dies wird in Routen zugeordnet), die eine Methode aufruft, die dann den Seiteninhalt als Zeichenfolge zurückgibt und die URL ändert.

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page
ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
get(RoutePath.GO,               (request, response) -> new FixSongsPage(request.session().attribute(FOLDER)).createPage(null, null)); //Display Page
post(RoutePath.FIX,             (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

Aber ich habe zwei Fragen

  1. Ist dieser umständlichere Ansatz der richtige Weg, dies zu tun?
  2. Führen diese zusätzlichen Umleitungsschritte die Leistung aus?

Hinweis Ich verwende keine Vorlagen, sondern erstelle Webseiten mit j2html

Ich kann beim ersten Aufruf keine direkte Umleitung zu einer HTML-Datei durchführen, da der HTML-Code nicht vorhanden ist und die Seiten dynamisch erstellt werden.

Ich habe auch festgestellt, dass obwohl, wenn ich einreicheAufgabe von der START-Seite starten Ich sende eine POST-Anfrage, da ich zu STARTFIXSONGS umleitet. Dies bedeutet, dass der Benutzer in der nächsten Phase die Schaltfläche ZURÜCK verwenden kann, um zu STARTFIXSONGS zurückzukehren. Ich würde es vorziehen, wenn sie dies nicht tun könnten. Bedeutet dies, dass ich in diesem Fall keine Weiterleitungen verwenden sollte.

Antworten:

0 für die Antwort № 1

Ihre Frage bezieht sich nicht wirklich auf Spark oder j2html, sondern auf Webanwendungen im Allgemeinen.

Ist dieser umständlichere Ansatz der richtige Weg, dies zu tun?

Es kommt darauf an, was Sie wollen. Wenn Sie möchten, dass Benutzer mit den Browser-Schaltflächen navigieren können, verwenden Sie den Flow Post-Redirect-Get. Wenn Sie dies nicht möchten, sollten Sie es wahrscheinlich verwenden Ajax-Anfragen, wo Sie mit JavaScript auf dem Server posten und der Server mit Anweisungen zum Aktualisieren des DOM antwortet (normalerweise im JSON-Format)

Führen diese zusätzlichen Umleitungsschritte die Leistung aus?

Nicht genug, dass Sie sich darüber Sorgen machen sollten.Sie erhalten eine weitere Rundreise, aber in 99,9% der Fälle spielt dies keine Rolle. Wenn Ihre Zielgruppe Ihre Seite mit GPRS auf einem anderen Kontinent durchsucht, ist dies wahrscheinlich nicht der Fall.