Heim > Java > javaLernprogramm > Hauptteil

Vergleich von Cookies und Sitzungen

巴扎黑
Freigeben: 2017-07-21 16:58:40
Original
1173 Leute haben es durchsucht
1. Der Unterschied zwischen Cookie-Mechanismus und Sitzungsmechanismus

Konkret verwendet der Cookie-Mechanismus eine Lösung, die den Zustand auf der Clientseite beibehält, während der Sitzungsmechanismus eine Lösung verwendet, die den Zustand auf der Serverseite beibehält.
Gleichzeitig sehen wir auch, dass der Sitzungsmechanismus möglicherweise den Cookie-Mechanismus verwenden muss, um den Zweck der Speicherung zu erreichen, da die Lösung zur Aufrechterhaltung des Status auf der Serverseite auch eine Identität auf der Clientseite speichern muss Identität, aber tatsächlich gibt es andere Möglichkeiten.
2. Der Unterschied zwischen Sitzungscookies und dauerhaften Cookies
Wenn die Ablaufzeit nicht festgelegt ist, bedeutet dies, dass der Lebenszyklus dieses Cookies während der Browsersitzung liegt wird verschwinden. Solche Cookies, die für die Dauer der Browsersitzung bestehen bleiben, werden Sitzungscookies genannt. Sitzungscookies werden grundsätzlich nicht auf der Festplatte, sondern im Arbeitsspeicher gespeichert.
Wenn eine Ablaufzeit eingestellt ist, speichert der Browser die Cookies auf der Festplatte. Wenn Sie den Browser schließen und erneut öffnen, bleiben diese Cookies weiterhin gültig, bis die eingestellte Ablaufzeit überschritten ist.
Auf der Festplatte gespeicherte Cookies können von verschiedenen Browserprozessen gemeinsam genutzt werden, beispielsweise von zwei IE-Fenstern. Verschiedene Browser haben unterschiedliche Möglichkeiten, im Speicher gespeicherte Cookies zu verarbeiten.
3. So implementieren Sie die automatische Anmeldung
Wenn sich ein Benutzer auf einer Website registriert, erhält er oder sie ein Cookie mit einer eindeutigen Benutzer-ID. Wenn der Client später eine erneute Verbindung herstellt, wird diese Benutzer-ID automatisch zurückgegeben und der Server prüft, ob es sich um einen registrierten Benutzer mit ausgewählter automatischer Anmeldung handelt, sodass der Benutzer auf Ressourcen auf dem Server zugreifen kann, ohne einen expliziten Benutzernamen und ein Kennwort anzugeben.
4. So passen Sie die Website an die Vorlieben des Benutzers an
Die Website kann Cookies verwenden, um die Wünsche des Benutzers zu erfassen. Für einfache Einstellungen kann die Website die Seiteneinstellungen direkt in Cookies speichern, um die Anpassung abzuschließen. Für komplexere Anpassungen muss die Website jedoch lediglich eine eindeutige Kennung an den Benutzer senden und die serverseitige Datenbank speichert die Seiteneinstellungen, die jeder Kennung entsprechen.
5. Senden von Cookies
1. Erstellen Sie ein Cookie-Objekt
2. Legen Sie das maximale Ablaufdatum fest
3. Fügen Sie das Cookie in den HTTP-Antwortheader ein
Wenn Sie ein Cookie erstellen und hinzufügen Es wird an den Browser gesendet und ist standardmäßig ein Cookie auf Sitzungsebene: Es wird im Speicher des Browsers gespeichert und gelöscht, nachdem der Benutzer den Browser verlässt. Wenn Sie möchten, dass der Browser das Cookie auf der Festplatte speichert, müssen Sie maxAge verwenden und eine Zeit in Sekunden angeben. Wenn Sie das maximale Alter auf 0 setzen, wird der Browser angewiesen, das Cookie zu löschen.
Um Cookies zu senden, müssen Sie die addCookie-Methode von HttpServletResponse verwenden, um das Cookie in einen Set-Cookie-HTTP-Anforderungsheader einzufügen. Da diese Methode keinen zuvor angegebenen Set-Cookie-Header ändert, sondern einen neuen Header erstellt, nennen wir diese Methode addCookie anstelle von setCookie. Denken Sie auch daran, dass Antwortheader festgelegt werden müssen, bevor Dokumentinhalte an den Client gesendet werden.
6. Cookie-Lesen
1. Rufen Sie request.getCookie auf
Um die vom Browser gesendeten Cookies zu erhalten, müssen Sie die getCookies-Methode von HttpServletRequest aufrufen. Dieser Aufruf gibt ein Array von Cookie-Objekten zurück, die dem entsprechen HTTP-Anfrage. Der im Cookie-Header eingegebene Wert.
2. Durchlaufen Sie das Array und rufen Sie die getName-Methode jedes Cookies auf, bis das gewünschte Cookie gefunden wird.
Cookies beziehen sich auf Ihren Host (Domäne), nicht auf Ihr Servlet oder Ihre JSP-Seite. Obwohl Ihr Servlet möglicherweise nur ein einziges Cookie sendet, erhalten Sie möglicherweise auch viele unabhängige Cookies.
Zum Beispiel:
String cookieName = „userID“;
Cookiecookies[] = request.getCookies();
if (cookies!=null){
for(int i=0 ; i
Cookie cookie = Cookies[i];
if (cookieName.equals(cookie.getName())){
doSomethingWith(cookie.getValue());
}
}
}
So verwenden Sie Cookies, um Erstbesucher zu erkennen
A. Rufen Sie HttpServletRequest.getCookies() auf, um das Cookie-Array abzurufen.
B Name existiert und ob der entsprechende Wert korrekt ist
C. Wenn ja, verlassen Sie die Schleife und setzen Sie das Unterscheidungszeichen.
Bestimmen Sie anhand des Unterscheidungszeichens, ob der Benutzer ein Erstbesucher ist, und führen Sie verschiedene Vorgänge aus
8. Häufige Fehler bei der Verwendung von Cookies zur Erkennung von Erstbesuchern
Es kann nicht davon ausgegangen werden, dass der Benutzer ein Erstbesucher ist, nur weil ein bestimmtes Datenelement im Cookie-Array nicht vorhanden ist null, der Kunde ist möglicherweise ein Erstbesucher, oder es kann das Ergebnis des Löschens oder Deaktivierens von Cookies durch den Benutzer sein.
Wenn das Array jedoch nicht null ist, zeigt es nur an, dass der Kunde Ihre Website besucht hat oder Domäne, und es bedeutet nicht, dass sie Ihr Servlet, JSP-Seiten und Nicht-Java-Webanwendungen besucht haben. Abhängig von den Pfadeinstellungen kann jedes Cookie an den Browser des Benutzers zurückgegeben werden Ansatz besteht darin, festzustellen, ob das Cookie-Array leer ist und ob das angegebene Cookie-Objekt vorhanden ist und der Wert korrekt ist.
9. Hinweise zu Attributen
Attribute sind Teil des Headers, der vom Server an den Browser gesendet wird ; aber sie sind nicht Teil des vom Browser an den Server zurückgegebenen Cookie-Attributen Das serverseitige Cookie des Browsers legt diese Attribute nicht festErwarten Sie daher nicht, dieses Attribut in Cookies zu verwenden, die über request.getCookies abgerufen werden. Dies bedeutet, dass Sie das Ändern von Cookie-Werten nicht einfach dadurch implementieren können, dass Sie das maximale Alter des Cookies festlegen, es ausgeben, im nachfolgenden Eingabearray nach dem entsprechenden Cookie suchen, seinen Wert lesen, ihn ändern und ihn wieder im Cookie speichern . .
10. So verwenden Sie Cookies, um die Zugriffsanzahl jedes Benutzers aufzuzeichnen
1 Holen Sie sich den Wert des Cookies im Cookie-Array, der speziell zum Zählen der Anzahl der Benutzerbesuche verwendet wird.
2 value in int type
3. Addiere 1 zum Wert und erstelle ein Cookie-Objekt mit dem ursprünglichen Namen
4. Setze das maximale Ablaufdatum zurück
5. Gib das neue Cookie aus
11. Das unterschiedliche Bedeutungen von Sitzung in verschiedenen Umgebungen
Sitzung, im Chinesischen oft als Konversation übersetzt, bezieht sich seine ursprüngliche Bedeutung auf eine Reihe von Aktionen/Nachrichten, die einen Anfang und ein Ende haben. Beispielsweise ist das Tätigen eines Telefonanrufs eine Reihe von Prozessen vom Abheben des Telefons über das Wählen bis zum Auflegen des Telefons, was als Sitzung bezeichnet werden kann.
Wenn das Wort Sitzung jedoch mit Netzwerkprotokollen in Verbindung gebracht wird, impliziert es häufig zwei Bedeutungen: „verbindungsorientiert“ und/oder „Zustandserhaltung“.
Die Semantik der Sitzung in der Webentwicklungsumgebung wurde erweitert. Ihre Bedeutung bezieht sich auf eine Art Lösung, die zur Aufrechterhaltung des Zustands zwischen dem Client und dem Server verwendet wird. Manchmal wird Sitzung auch verwendet, um auf die Speicherstruktur dieser Lösung zu verweisen.
12. Sitzungsmechanismus
Der Sitzungsmechanismus ist ein serverseitiger Mechanismus. Der Server verwendet eine Struktur ähnlich einer Hash-Tabelle (oder verwendet möglicherweise eine Hash-Tabelle), um Informationen zu speichern.
Wenn das Programm jedoch eine Sitzung für die Anfrage eines Clients erstellen muss, prüft der Server zunächst, ob die Anfrage des Clients eine Sitzungs-ID enthält – die sogenannte Sitzungs-ID. Wenn sie bereits eine Sitzungs-ID enthält, bedeutet dies, dass dies bereits geschehen ist Wenn der Client eine Sitzung erstellt hat, ruft der Server die Sitzung ab und verwendet sie entsprechend der Sitzungs-ID (wenn sie nicht abgerufen werden kann, erstellt er möglicherweise eine neue Sitzung. Dies kann passieren, wenn der Server das entsprechende Sitzungsobjekt gelöscht hat der Benutzer, aber der Benutzer wird künstlich an die angeforderte URL angehängt (ein JSESSION-Parameter).
Wenn die Client-Anfrage keine Sitzungs-ID enthält, wird eine Sitzung für diesen Client erstellt und eine dieser Sitzung zugeordnete Sitzungs-ID wird zur Speicherung in dieser Antwort an den Client zurückgegeben.
13. Mehrere Möglichkeiten zum Speichern der Sitzungs-ID
A. Mithilfe von Cookies kann die Sitzungs-ID gespeichert werden, sodass der Browser diese ID während der Interaktion automatisch regelkonform an den Server senden kann.
B. Da Cookies künstlich deaktiviert werden können, muss es andere Mechanismen geben, um die Sitzungs-ID trotzdem an den Server zurückzugeben, wenn das Cookie deaktiviert ist. Eine häufig verwendete Technik ist das sogenannte URL-Rewriting, bei dem die Sitzungs-ID an das Ende der URL angehängt wird Es gibt zwei Möglichkeiten zum Anhängen: eine als zusätzliche Information zum URL-Pfad und die andere als an das Ende der URL angehängte Abfragezeichenfolge. Das Netzwerk behält den Status während der gesamten Interaktion bei und diese Sitzungs-ID muss am Ende jedes Pfads enthalten sein, den der Client möglicherweise anfordert.
C. Eine andere Technik nennt sich Form Hidden Fields. Das heißt, der Server ändert das Formular automatisch und fügt ein ausgeblendetes Feld hinzu, sodass die Sitzungs-ID beim Absenden des Formulars an den Server zurückgegeben werden kann.
14. Wann wird die Sitzung erstellt?
Ein häufiger Fehler besteht darin, zu glauben, dass die Sitzung erst dann erstellt wird, wenn ein Client darauf zugreift (z. B. Servlet). ) ruft HttpServletRequest.getSession(true) auf. Solche Anweisungen werden nur erstellt.
15. Wann wird die Sitzung gelöscht?
Die Sitzung wird unter folgenden Umständen gelöscht:
A. Das Programm ruft HttpSession.invalidate()
B. auf. Das Zeitintervall seit der letzten vom Client gesendeten Sitzungs-ID überschreitet die maximale Gültigkeitszeit der Sitzung
C. Der Serverprozess wird gestoppt
Beachten Sie erneut, dass durch das Schließen des Browsers nur das im Speicher des Client-Browsers gespeicherte Sitzungscookie ungültig wird, nicht jedoch das Sitzungsobjekt auf der Serverseite.
16. Welche Nachteile hat das URL-Rewriting?
Verwenden Sie das URL-Rewriting für alle URLs, einschließlich Hyperlinks, Formularaktionen und umgeleitete URLs. Jede URL, die auf Ihre Website verweist, sowie alle URLs, die an den Benutzer zurückgegeben werden (auch auf indirektem Weg, z. B. über das Feld „Standort“ in einer Serverumleitung), fügen zusätzliche Informationen hinzu.
Das bedeutet, dass Sie keine statischen HTML-Seiten auf Ihrer Website haben dürfen (zumindest dürfen die statischen Seiten keine Links zu den dynamischen Seiten der Website haben). Daher muss jede Seite dynamisch mithilfe von Servlets oder JSP generiert werden. Selbst wenn alle Seiten dynamisch generiert werden, gehen die Sitzungsinformationen verloren, wenn der Benutzer die Sitzung verlässt und über Lesezeichen oder Links wieder zurückkommt, da der gespeicherte Link falsche Identifikationsinformationen enthält – die SESSION-ID hinter der URL ist abgelaufen.
17. Welche Nachteile hat die Verwendung versteckter Formularfelder?
Diese Methode kann nur verwendet werden, wenn jede Seite dynamisch durch Formularübermittlung generiert wird. Durch Klicken auf einen regulären Hypertext-Link wird keine Formularübermittlung generiert, sodass ausgeblendete Formularfelder die normale Sitzungsverfolgung nicht unterstützen und nur für eine Reihe spezifischer Vorgänge verwendet werden können, wie z. B. den Checkout-Prozess eines Online-Shops
18. Sitzungsverfolgung Basic Schritte
1. Greifen Sie auf das Sitzungsobjekt zu, das sich auf die aktuelle Anfrage bezieht
2. Finden Sie gesprächsbezogene Informationen
3. Sitzungsinformationen speichern
4. Sitzungsdaten verwerfen
19. Der Unterschied zwischen getSession()/getSession(true) und getSession(false)
getSession()/getSession(true): Gibt die Sitzung zurück, wenn die Sitzung vorhanden ist, andernfalls erstellen Sie eine neue Sitzung und return Das Objekt
getSession(false): Gibt die Sitzung zurück, wenn die Sitzung vorhanden ist, andernfalls wird die Sitzung nicht erstellt und null zurückgegeben
20. So verknüpfen Sie Informationen mit der Sitzung
SetAttribute ersetzt alle zuvor festgelegter Wert; wenn Sie einen Wert entfernen möchten, ohne einen Ersatz bereitzustellen, sollten Sie „removeAttribute“ verwenden. Diese Methode löst die valueUnbound-Methode aller Werte aus, die die HttpSessionBindingListener-Schnittstelle implementieren.
21. Gibt es Einschränkungen hinsichtlich der Art der Sitzungsattribute?
Normalerweise muss die Art der Sitzungsattribute nur Objekt sein. Außer Null- oder Basistypen wie int, double, boolean.
Wenn Sie einen Basistypwert als Attribut verwenden möchten, müssen Sie ihn in das entsprechende gekapselte Klassenobjekt konvertieren
22. So verwerfen Sie Sitzungsdaten
A. Entfernen Sie nur die Daten, die von dem von Ihnen geschriebenen Servlet erstellt wurden:
Rufen Sie „removeAttribute("key") auf, um den mit dem angegebenen Schlüssel verknüpften Wert zu verwerfen
B. Löschen Sie die gesamte Sitzung (in der aktuellen Webanwendung):
Rufen Sie invalidate auf, um die gesamte Sitzung zu verwerfen. Dadurch gehen alle Sitzungsdaten für diesen Benutzer verloren, nicht nur die Sitzungsdaten, die von unserem Servlet oder unserer JSP-Seite erstellt wurden
C. Melden Sie den Benutzer vom System ab und löschen Sie alle ihm (oder ihr) gehörenden Sitzungen.
Rufen Sie logOut auf, um den Client vom Webserver abzumelden und alle mit dem Benutzer verbundenen Sitzungen zu verwerfen (höchstens eine pro Webanwendung). Dieser Vorgang kann sich auf mehrere verschiedene Webanwendungen auf dem Server auswirken.
23. Der falsche Weg, isNew zu verwenden, um festzustellen, ob der Benutzer ein neuer oder alter Benutzer ist.
Öffentliche boolesche isNew()-Methode Wenn die Sitzung noch keinen Kontakt mit dem Client-Programm (Browser) hatte, wird diese Methode verwendet Gibt „true“ zurück, was im Allgemeinen der Fall ist. Dies liegt daran, dass die Sitzung neu ist und nicht durch eine eingehende Client-Anfrage verursacht wird.
Aber wenn isNew „false“ zurückgibt, bedeutet das nur, dass sie die Webanwendung schon einmal besucht haben, und es bedeutet nicht, dass sie unser Servlet oder unsere JSP-Seite besucht haben.
Da die Sitzung benutzerbezogen ist, wurde möglicherweise auf jeder Seite, die der Benutzer zuvor besucht hat, eine Sitzung erstellt. Wenn isNew also false ist, kann dies nur bedeuten, dass der Benutzer die Webanwendung bereits zuvor besucht hat. Die Sitzung kann von der aktuellen Seite oder von einer Seite erstellt werden, die der Benutzer zuvor besucht hat.
Der richtige Ansatz besteht darin, festzustellen, ob ein bestimmter Schlüssel in einer Sitzung vorhanden ist und ob sein Wert korrekt ist.
24. Was ist der Unterschied zwischen Cookie-Ablauf und Sitzungs-Timeout?
Das Sitzungs-Timeout wird durch die Serverwartung bestimmt. welches sich vom Ablaufdatum des Cookies unterscheidet. Erstens basieren Sitzungen im Allgemeinen auf speicherresidenten Cookies, die keine dauerhaften Cookies sind und daher kein Ablaufdatum haben. Selbst wenn das JSESSIONID-Cookie abgefangen wird, wird ein Ablaufdatum dafür festgelegt und versendet. Auch Browsersitzungen und Serversitzungen können sehr unterschiedlich sein.
25. Sind die Lebenszyklen von Sitzungscookie und Sitzungsobjekt gleich
Wenn der Benutzer den Browser schließt, wird das Sitzungscookie weiterhin auf der Serverseite gespeichert
26. Ob Solange der Browser geschlossen ist, verschwindet die Sitzung.
Das Programm sendet normalerweise eine Anweisung zum Löschen der Sitzung, wenn sich der Benutzer abmeldet. Der Browser benachrichtigt den Server jedoch nie aktiv, bevor er geschlossen wird Der Server erkennt einfach nicht, dass der Browser geschlossen wurde. Der Server behält dieses Sitzungsobjekt, bis es für einen festgelegten Zeitraum inaktiv ist.
Der Grund für dieses Missverständnis ist, dass die meisten Sitzungsmechanismen Sitzungscookies verwenden, um die Sitzungs-ID zu speichern. Nach dem Schließen des Browsers verschwindet die Sitzungs-ID und die ursprüngliche Sitzungs-ID kann nicht gefunden werden, wenn eine erneute Verbindung zum Server hergestellt wird.
Wenn das vom Server gesetzte Cookie auf der Festplatte gespeichert wird oder eine Methode verwendet wird, um den vom Browser gesendeten HTTP-Anforderungsheader neu zu schreiben und die ursprüngliche Sitzungs-ID an den Server zu senden, kann die ursprüngliche Sitzung weiterhin gefunden werden Der Browser wird erneut geöffnet.
Gerade weil das Schließen des Browsers nicht dazu führt, dass die Sitzung gelöscht wird, wird der Server gezwungen, eine Ablaufzeit für die Sitzung festzulegen. Wenn die Zeit seit der letzten Nutzung der Sitzung durch den Client diese Ablaufzeit überschreitet, kann der Server davon ausgehen, dass die Der Client wurde gestoppt. Wenn die Aktivität aktiv ist, wird die Sitzung gelöscht, um Speicherplatz zu sparen.
Daraus können wir folgende Schlussfolgerung ziehen:
Das Schließen des Browsers führt lediglich dazu, dass das Sitzungscookie im Speicher des Browsers verschwindet, nicht aber dazu, dass das auf dem Server gespeicherte Sitzungsobjekt verschwindet, und dies auch nicht Dadurch verschwinden dauerhaft auf der Festplatte gespeicherte Cookies.
27. Werden beim Öffnen zweier Browserfenster dieselbe Sitzung oder unterschiedliche Sitzungen verwendet, um auf die Anwendung zuzugreifen?
Normalerweise können Sitzungscookies nicht über mehrere Fenster hinweg verwendet werden Geben Sie Ihnen eine neue Sitzungs-ID, damit der Zweck unserer Informationsweitergabe nicht erreicht wird.
Zu diesem Zeitpunkt können wir zunächst die Sitzungs-ID im dauerhaften Cookie speichern (indem wir die maximale Gültigkeitsdauer der Sitzung festlegen) und sie dann in einem neuen Fenster auslesen, um die Sitzungs-ID des vorherigen Fensters zu erhalten. Durch die Kombination von Sitzungscookie und dauerhaftem Cookie können wir eine fensterübergreifende Sitzungsverfolgung erreichen.
28. So verwenden Sie die Sitzung, um die Anzahl der Besuche für jeden Kunden anzuzeigen
Da es sich bei der Anzahl der Kundenbesuche um eine Ganzzahlvariable handelt, können im Attributtyp keine Basistypvariablen wie int, double und boolean verwendet werden Daher müssen wir diese Grundtypen von gekapselten Typobjekten als Werte von Attributen im Sitzungsobjekt verwenden.
Aber wie Integer ist es eine unveränderliche Datenstruktur: Sie kann nach der Erstellung nicht geändert werden. Dies bedeutet, dass jede Anfrage ein neues Integer-Objekt erstellen und dann setAttribute verwenden muss, um den Wert des alten Attributs zu ersetzen, das zuvor vorhanden war. Zum Beispiel:
HttpSession session = request.getSession();
SomeImmutableClass value = (SomeImmutableClass)session.getAttribute("SomeIdentifier");
if (value= =null){
value = new SomeImmutableClass (…); // Ein neues unveränderliches Objekt erstellen
}else{
value = new SomeImmutableClass(calculatedFrom(value)); // Ein neues Objekt erstellen, nachdem der Wert neu berechnet wurde
}
session .setAttribute(“someIdentifier”, value); // Verwenden Sie das neu erstellte Objekt, um das ursprüngliche alte Objekt zu überschreiben
29. So verwenden Sie Sitzungen, um Benutzerdaten zu sammeln
Verwenden Sie variable Datenstrukturen wie Arrays, Listen, Karte oder anwendungsspezifische Datenstruktur mit beschreibbaren Feldern. Auf diese Weise ist es nicht erforderlich, setAttribute aufzurufen, es sei denn, das Objekt wird zum ersten Mal zugewiesen. Zum Beispiel
HttpSession session = request.getSession();
SomeMutableClass value = (SomeMutableClass)session.getAttribute(“someIdentifier”);
if(value == null){
value = new SomeMutableClass ( …);
session.setAttribute(“someIdentifier”,value);
}else{
value.updateInternalAttribute(…); // Wenn das Objekt bereits existiert, aktualisieren Sie seine Attribute, ohne die Attribute zurückzusetzen.
🎜>30. Unterschiedliche Behandlung von unveränderlichen Objekten und veränderbaren Objekten, wenn Sitzungsdaten aktualisiert werden
Unveränderliche Objekte können nach ihrer Erstellung nicht mehr geändert werden, daher müssen die Werte von Attributen in der Sitzung alle geändert werden Manchmal müssen Sie setAttribute("someIdentifier", newValue) aufrufen, um den ursprünglichen Attributwert zu ersetzen, da das veränderbare Objekt im Allgemeinen selbst eine Methode zum Ändern seiner eigenen Attribute bereitstellt Jedes Mal geändert, wenn der Wert eines Attributs in einer Sitzung geändert wird, müssen Sie nur die Methode des veränderbaren Objekts aufrufen, das seine eigenen Attribute ändert. Das bedeutet, dass wir die setAttribute-Methode nicht aufrufen müssen.

Das obige ist der detaillierte Inhalt vonVergleich von Cookies und Sitzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!