In Java kann ich eine wirklich grundlegende JSP index.jsp
so schreiben:
<% request.getRequestDispatcher("/home.action").forward(request, response); %>
Dies hat zur Folge, dass ein Benutzer, der index.jsp
anfordert (oder nur das enthaltende Verzeichnis, wenn index.jsp
ein Standarddokument für das Verzeichnis ist) home.action
ohne eine Browserumleitung, dh die [Weiterleitung] (< a href="http://java.sun.com/javaee/5/docs/api/javax/servlet/RequestDispatcher.html#forward(javax.servlet.ServletRequest,%20javax.servlet.ServletResponse))"> Ссылка passiert auf der Serverseite.
Kann ich etwas ähnliches mit PHP machen? Ich vermute, dass es möglich ist, Apache für diesen Fall zu konfigurieren, aber da ich möglicherweise keinen Zugriff auf die entsprechende Apache-Konfiguration habe, wäre ich an einer Lösung interessiert, die nur auf PHP basiert.
Der Trick bei Request.Forward besteht darin, dass Sie eine saubere, neue Anfrage für die gewünschte Aktion erhalten. Daher haben Sie keine Residuen von der aktuellen Anfrage und zum Beispiel keine Probleme mit Skripten, die auf dem Java-Äquivalent von $ _SERVER ['REQUEST_URI'] beruhen, was etwas ist.
Sie könnten einfach eine CURL-Klasse einfügen und eine einfache Funktion schreiben, um dies zu tun:
%Vor%Speichern Sie das einfach in class.CURLHandler.php und Sie können dies tun:
Natürlich ist die Verwendung von $ _REQUEST nicht wirklich sicher (Sie sollten $ _SERVER ['REQUEST_METHOD']) überprüfen, aber Sie bekommen den Punkt.
%Vor%Natürlich ist CURL nicht überall installiert , aber wir haben native PHP curl Emulatoren dafür.
Dies gibt Ihnen sogar noch mehr Flexibilität als Request.Forward, da Sie die Ausgabe auch abfangen und nachbearbeiten können.
Ich glaube, eine der nächsten analogen Methoden wäre die Verwendung der Funktion virtual () beim Ausführen von PHP als Apache-Modul.
virtual () ist eine ähnliche Apache-spezifische Funktion im mod_include. Es führt einen Apache aus Unteranfrage.
Wenn Sie eine MVC verwenden, wie es das Zend Framework bietet, können Sie die Controller-Aktion ändern oder sogar zwischen den Controller-Aktionen wechseln. Die Methode ist _forward als hier beschrieben .
Versuchen Sie es.
%Vor% auf der eingebundenen Seite wird die Variable $vars
als Java-Request-Attribut funktionieren
Konzepte Redirect und Forward wie in Java, kann auch in PHP erreichbar sein.
Redirect :: header("Location: redirect.php");
- (URL in der Adressleiste ändert sich)
Vorwärts :: include forward.php ;
- (URL unverändert in der Adressleiste)
Es ist mit diesem & amp; andere Programmierlogiken
Sie können wie:
verwenden %Vor%Der Exit muss nur für den Fall, dass eine HTML-Ausgabe vorher gesendet wurde, der Header () wird nicht funktionieren, also müssen Sie einen neuen Header vor any Ausgabe an den Browser senden.
Tags und Links php http jsp forwarding