JSP-Clientanforderung, Serverantwort & HTTP-Statuscodes

Inhaltsverzeichnis:

Anonim

JSP-Aktionen, die Konstrukte in XML-Syntax verwenden, um das Verhalten der Servlet-Engine zu steuern. Wir werden detailliertere Informationen zu verschiedenen JSP-Aktionselementen wie Clientanforderung, Serverantwort und HTTP-Statuscodes erhalten.

In diesem Tutorial lernen Sie:

  • JSP-Client-Anfrage
  • Antwort des JSP-Servers
  • JSP-HTTP-Statuscodes

JSP-Client-Anfrage

  • Wenn die Webseite angefordert wird, sendet sie Informationen im HTTP-Header an den Webserver.
  • Wir können diese Informationen mit dem HTTPServletRequest-Objekt verwenden.
  • Vom Browser gesendete Informationen werden im Anforderungsheader der HTTP-Anforderung gespeichert.
  • Wir verwenden verschiedene Header, um Informationen an das Anforderungsobjekt zu senden.

Im Folgenden werden verschiedene Header beschrieben:

Header Beschreibung Beispiel
Akzeptieren Es gibt MIME-Typen an, die Browser oder andere Clients verarbeiten können Bild / PNG oder Bild / JPEG.webp
Accept-Zeichensatz Es verwendet den vom Browser verwendeten Zeichensatz, um die Informationen anzuzeigen ISO-8859-1
Akzeptieren - Codierung Es gibt die Art der Codierung an, die vom Browser verarbeitet wird Gzip oder komprimieren
Akzeptiere die Sprache Es gibt die vom Kunden angegebene Sprache an En, en_us
Genehmigung Header, der von Clients verwendet wird, wenn versucht wird, auf kennwortgeschützte Webseiten zuzugreifen
Verbindung Es gibt an, ob der Client dauerhafte HTTP-Verbindungen verarbeiten kann (der Browser kann mehrere Dateien abrufen). Bleib am Leben
Inhaltslänge Gilt für Anfragen. Es gibt die Größe der Post-Daten von Bytes an
Plätzchen Gibt das Cookie an den Server zurück (diejenigen, die zuvor an den Browser gesendet wurden)
Gastgeber Gibt den Host und den Port der ursprünglichen URL an
Wenn geändert seit Es zeigt an, dass nur eine Seite erforderlich ist, wenn sie geändert oder modifiziert wurde
Wenn seitdem unverändert Es zeigt an, dass eine Seite nur erforderlich ist, wenn sie nicht geändert oder modifiziert wurde
Referrer Gibt die URL der verweisenden URL-Seite an
User-Agent Identifiziert die Anforderung eines Browsers oder Clients

Die folgenden Methoden werden verwendet, um den HTTP-Header auf der JSP-Seite zu lesen:

  1. Cookie [] getCookies () - Gibt ein Array zurück, das vom Client gesendete Cookie-Objekte enthält
  2. Aufzählung getAttributeNames () - enthält die Aufzählung der Namen von Attributen für die Anforderung
  3. Aufzählung getHeaderNames () - enthält die Aufzählung der Namen der Header.
  4. Aufzählung getParameterNames () - enthält eine Aufzählung zum Abrufen von Parameternamen in der Anforderung.
  5. HttpSessiongetSession () - Gibt die aktuelle Sitzung zurück, die der Anforderung zugeordnet ist. Wenn keine Sitzung vorhanden ist, wird eine neue Sitzung erstellt.
  6. Gebietsschema getLocale () - Gibt das bevorzugte Gebietsschema zurück, in dem der Client Inhalte akzeptiert. Es wurde der Antwort zugewiesen. Standardmäßig ist der Wert das Standardgebietsschema des Servers.
  7. Object getAttribute (String name) - Gibt den Wert des benannten Attributs als Objekt zurück.
  8. ServletInputStreamgetInputStream () - Ruft einen Anforderungskörper als Binärdaten ab.
  9. String getAuthType () - Gibt den Namen des Authentifizierungsschemas zum Schutz des Servlets zurück
  10. String getCharacterEncoding () - Gibt den Namen der im Hauptteil der Anforderung verwendeten Zeichenkodierung zurück.
  11. String getContentType () - gibt den MIME-Typ des Hauptteils der Anforderung zurück.
  12. String getContextPath () - Gibt den Teil des Anforderungs-URI zurück, der den Kontextpfad des URI angibt
  13. String getHeader (String name) - Gibt den Anforderungsheader als String zurück
  14. String getMethod () - Gibt den Namen der HTTP-Methode wie GET, POST zurück
  15. String getParameter (String name) - Gibt den Parameter der Anforderung als String zurück.
  16. String getPathInfo () - Gibt die mit der URL verknüpften Pfadinformationen zurück
  17. Zeichenfolge getQueryString () - Gibt die Abfragezeichenfolge zurück, die der Anforderungs-URL zugeordnet ist
  18. String getServletPath () - Gibt den Teil der URLs der Anforderung zurück, die die JSP aufruft
  19. String [] getParameterValues ​​(String name) - Gibt das Array von String-Objekten zurück, die die Werte des Anforderungsparameters enthalten

Beispiel:

Im folgenden Beispiel verwenden wir verschiedene Methoden mit dem Anforderungsobjekt

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Client Request Guru JSP </ title></ head><body>
<h2>Client Request Guru JSP </ h2>
<table>
<tr><th> Guru-Header </ th> <th> Guru-Header Wert (e) </ th></ tr><%HttpSession gurusession = request.getSession ();out.print ("
<tr> <td> Sitzungsname ist </ td> <td>" + gurusession + "</ td.> </ tr>");Gebietsschema gurulocale = request.getLocale ();out.print ("
<tr> <td> Name des Gebietsschemas ist </ td> <td>" + gurulocale + "</ td> </ tr>");String path = request.getPathInfo ();out.print ("
<tr> <td> Pfadname ist </ td> <td>" + Pfad + "</ td> </ tr>");String lpath = request.get ();out.print ("
<tr> <td> Kontextpfad ist </ td> <td>" + Lipath + "</ td> </ tr>");String servername = request.getServerName ();out.print ("
<tr> <td> Servername ist </ td> <td>" + Servername + "</ td> </ tr>");int portname = request.getServerPort ();out.print ("
<tr> <td> Server-Port ist </ td> <td>" + Portname + "</ td> </ tr>");Aufzählung hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print ("
<tr> <td>" + paramName + "</ td>");String paramValue = request.getHeader (paramName);out.println ("<td>" + paramValue + "</ td> </ tr>");}}%></pre>
<p><strong>Erläuterung des Codes:</strong></p>

<div id="container-5533149ee6411a5f99b370c693e87966"></div>
<p><strong>Codezeile 17:</strong> Mit dem Anforderungsobjekt erhalten wir das Sitzungsobjekt dieser bestimmten Sitzung und den Objektwert dieser Sitzung<strong> </strong></p>
<p>Codezeile <strong>19:</strong> Mit dem Anforderungsobjekt erhalten wir das Gebietsschema dieser bestimmten Sitzung i.een_US für diese JSP.<strong> </strong></p>
<p><strong>Codezeile 21:</strong> Mit dem Anforderungsobjekt erhalten wir Pfadinformationen für diese JSP. In diesem Fall ist es null, da kein Pfad für die angegebene URL angegeben ist.</p>
<p><strong>Codezeile 23:</strong> Unter Verwendung des Anforderungsobjekts erhalten wir den Kontextpfad, dh den Stammpfad</p>
<p><strong>Codezeile 25:</strong> Mit dem Anforderungsobjekt erhalten wir den Servernamen.</p>
<p><strong>Codezeile 27:</strong> Mit dem Anforderungsobjekt erhalten wir einen Server-Port.</p>
<p><strong>Codezeile 29-35:</strong> Unter Verwendung des Anforderungsobjekts erhalten wir Headernamen, die als Aufzählung ausgegeben werden, und daher erhalten wir alle Headerwerte in den Headernamen.</p>
<p>Dabei erhalten wir alle Header-Werte als Cookie, Host, Verbindung, Sprache akzeptieren, Codierung akzeptieren.</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:</p>
<p><strong>Ausgabe</strong> :</p>
<p>Wir erhalten eine Reihe von Werten wie Sitzungsname, Gebietsschemaname, Pfadname, Servername, Portname, Host, Kontextpfad und alle Headerwerte dieser JSP.</p>

<div id="container-5533149ee6411a5f99b370c693e87966"></div>
<a id="menu-2"></a>
<h2>Antwort des JSP-Servers</h2>
<ul>
<li>Wenn eine Anfrage verarbeitet wird und die Antwort vom Webserver generiert wird. Es besteht aus einer Statuszeile, Antwortheadern, einer Leerzeile und einem Dokument.</li>
<li>Es ist das Objekt von HTTPServletResponseclass, einem Antwortobjekt.</li>
<li>Die Statuszeile ist eine Version von HTML.</li>
</ul>
<p>Antwortheader werden unten erwähnt:</p>
<table> 
<thead>
 
<tr> <th><strong>Header</strong> </th> <th><strong>Beschreibung</strong> </th> 
</tr>
 
</thead>
 
<tbody>
 
<tr> <td>ermöglichen </td> <td>Es gibt die Anforderungsmethoden wie GET, POST an, die der Server anfordert </td> 
</tr>
 
<tr> <td>Cache-Kontrolle </td> <td>Das Antwortdokument kann zwischengespeichert werden. Es kann öffentlich, privat und ohne Cache sein. Kein Cache gibt an, dass das Dokument nicht zwischengespeichert werden soll</td> 
</tr>
 
<tr> <td>Verbindung </td> <td>Es wird angewiesen, ob der Browser savedHTTPConnections verwenden soll oder nicht. Der Wert "Schließen" gibt an, dass der Browser in HTTPConnections nicht persistent verwenden soll. "Keep-Alive" bedeutet, dass persistente Verbindungen verwendet werden</td> 
</tr>
 
<tr> <td>Inhaltsdisposition </td> <td>Um den Benutzer zu fragen, ob die Antwort auf der Festplatte gespeichert werden soll oder nicht </td> 
</tr>
 
<tr> <td>Inhaltskodierung </td> <td>Die Seite muss während der Übertragung codiert werden </td> 
</tr>
 
<tr> <td>Inhaltslänge </td> <td>Anzahl der Bytes in der Antwort </td> 
</tr>
 
<tr> <td>Inhaltstyp </td> <td>Es gibt den MIME-Antworttyp an </td> 
</tr>
 
<tr> <td>Läuft ab </td> <td>Gibt an, bis wann der Inhalt als veraltet betrachtet und nicht zwischengespeichert werden soll </td> 
</tr>
 
<tr> <td>Zuletzt bearbeitet </td> <td>Es zeigt an, wann das Dokument zuletzt geändert wurde </td> 
</tr>
 
<tr> <td>Ort </td> <td>Es sollte in allen Antworten enthalten sein, deren Statuscode 300 als Statuscode hat </td> 
</tr>
 
<tr> <td>Aktualisierung </td> <td>Es gibt an, wie die aktualisierte Seite gefunden wird. </td> 
</tr>
 
<tr> <td>Wiederholen Sie den Vorgang </td> <td>Es kann mit einer 503-Antwort verwendet werden, um dem Client mitzuteilen, wie schnell die Anforderung wiederholt werden kann </td> 
</tr>
 
<tr> <td>Set-Cookie </td> <td>Gibt das der Seite zugeordnete Cookie an </td> 
</tr>
 
</tbody>
 
</table>
<p>Im Folgenden sind die Methoden aufgeführt, die das Antwortobjekt verwenden:</p>
<ol>
<li><strong>String encodeRedirectURL (String URL) -</strong> codiert die URL in der redirectURL-Methode.</li>
<li><strong>String encodeURL (String URL) -</strong> codiert die URL unter <strong>Angabe</strong> der Sitzungs-ID.</li>
<li><strong>Boolean enthältHeader (String name) -</strong> enthält einen Header in der JSP oder nicht.</li>
<li><strong>Boolean isCommited () -</strong> Antwort wurde festgeschrieben oder nicht.</li>
<li><strong>Void addCookie (Cookie-Cookie) - Fügt der Antwort ein Cookie hinzu</strong></li>
<li><strong>Void addDateHeader (String name, String value) - Fügt den</strong> Namen und den Wert des <strong>Antwortheaderdatums</strong> hinzu</li>
<li><strong>Void addHeader (String name, String value) - Fügt den Antwortheader</strong> mit Name und Wert hinzu</li>
<li><strong>Void addIntHeader (String name, int value) - Fügt einen Antwortheader</strong> mit Name und ganzzahligem Wert hinzu</li>
<li><strong>Void flushBuffer () - Erzwingt den</strong> Inhalt des Puffers für die Ausgabe an den Client.</li>
<li><strong>Void reset () -</strong> löscht Daten im Puffer.</li>
<li><strong>Void resetBuffer -</strong> löscht den Inhaltspuffer in der Antwort, ohne die Statuscodes zu <strong>löschen</strong> .</li>
<li><strong>Void sendError (intsc, Stringmsg) -</strong> sendet eine Fehlerantwort mit Statuscode an den Client.</li>
<li><strong>Void sendRedirect (String location) -</strong> sendet eine temporäre Umleitungsantwort an den Client.</li>
<li><strong>Void setBufferSize (int size) - Legt die</strong> Puffergröße des Körpers fest</li>
<li><strong>Void setCharacterEncoding (String charset) - Legt</strong> die Zeichenkodierung fest</li>
<li><strong>Void setContentType (String type) - Legt</strong> den Inhaltstyp der Antwort fest</li>
<li><strong>Void setContentLength (intlen) - Legt</strong> die Inhaltslänge der Antwort fest</li>
<li><strong>Void setLocale (Locale lcl) - Legt</strong> den Gebietsschema-Typ der Antwort fest</li>
<li><strong>Void setStatus (intsc) - Legt</strong> den Statuscode der Antwort fest</li>
</ol>
<p><strong>Beispiel:</strong></p>
<p>In diesem Beispiel werden verschiedene Methoden behandelt: getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.</p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Guru-Aktionsantwort </ title></ head><body><Zentrum>
<h2>Guru-Antwort </ h2><%Gebietsschema lcl = response.getLocale ();out.println ("Gebietsschema ist: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("Dies ist vom Writer-Objekt");String type = response.getContentType ();out.println ("Der Inhaltstyp: + Typ + "\ n");// Aktualisierungs- und Autoload-Zeit auf 5 Sekunden einstellenresponse.setIntHeader ("Refresh", 5);// Aktuelle Zeit abrufenDatum dt = neues Datum ();out.println ("Das heutige Datum ist: + dt.toString () + "\ n");%></ center></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p><strong>Codezeile 13:</strong> Mit dem Antwortobjekt erhalten wir das Gebietsschemaobjekt dieser JSP-Sitzung</p>
<p>Codezeile <strong>15:</strong> Mit dem Antwortobjekt wird der Flushbuffer verwendet, um den Pufferinhalt in den Client zu zwingen</p>
<p><strong>Codezeile 16:</strong> Mit dem Antwortobjekt erhalten wir ein Writer-Objekt, das im Ausgabestream ausgegeben wird</p>
<p><strong>Codezeile 18:</strong> Unter Verwendung des <strong>Antwortobjekts erhalten</strong> wir den Inhaltstyp, dh den MIME-Typ des <strong>Antwortobjekts</strong></p>
<p><strong>Codezeile 21:</strong> Mit dem Antwortobjekt wird es alle 5 Sekunden automatisch geladen, da 5 als zweiter Parameter festgelegt wird</p>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:</p>
<p><strong>Ausgabe:</strong></p>
<ul>
<li>Hier erhalten wir die Ausgabe, da dies vom Writer-Objekt von getWriter stammt, das uns ein Objekt gibt und wir im Ausgabestream ausgeben können.</li>
<li>Wir erhalten das Gebietsschema als en_us und den Inhaltstyp als text / html</li>
<li>Wir erhalten einen Zeichensatz als ISO 8859</li>
<li>Das heutige Datum als aktuelles Datum.</li>
</ul>
<a id="menu-3"></a>
<h2>JSP-HTTP-Statuscodes</h2>
<ul>
<li>Wenn die Anforderung verarbeitet wird, wird die Antwort generiert. Die Antwortstatuszeile besteht aus einer HTTP-Version, einem Statuscode und einer zugehörigen Nachricht.</li>
<li>Die Nachricht ist direkt mit dem Statuscode und der HTTP-Version verknüpft und wird vom Server festgelegt.</li>
<li>Standardmäßig ist 200 in JSP als Statuscode festgelegt, sodass wir nicht explizit festlegen müssen.</li>
<li>Wir können als response.setStatus () -Methode festlegen</li>
</ul>
<p>Die Codes fallen in folgende 5 Kategorien:</p>
<ul>
<li>100-199 - Hier gibt der Client an, dass er mit einer Aktion antworten soll</li>
<li>200-299 - Dies bedeutet, dass die Anforderung erfolgreich ist</li>
<li>300-399 - Sie werden für Dateien verwendet, die verschoben wurden und normalerweise einen Speicherortkopf enthalten, der eine neue Adresse angibt</li>
<li>400-499 - Zeigt einen Fehler des Clients an</li>
<li>500-599 - Zeigt einen Fehler des Servers an</li>
</ul>
<p>Einige der allgemeinen Statuscodes sind unten aufgeführt:</p>
<ul>
<li>200 - Zeigt an, dass alles in Ordnung ist</li>
<li>301 - Es hat sich dauerhaft bewegt</li>
<li>304 - Seit der letzten Änderung nicht geändert</li>
<li>400 - Schlechte Anfrage</li>
<li>404 Nicht gefunden</li>
<li>405 - Methode nicht gefunden</li>
<li>500 - Interner Serverfehler</li>
<li>503 Dienst nicht verfügbar</li>
<li>505 - HTTP-Version wird nicht unterstützt</li>
</ul>
<p>Einige seiner Methoden sind unten aufgeführt:</p>
<ol>
<li>Public void setStatus (intstatusCode)
<p>Es legt den Statuscode fest, den wir auf dieser JSP-Seite festlegen möchten. Dadurch erhalten wir die Meldung des eingestellten Statuscodes</p>
</li>
<li>Public void sendRedirect (String URL)
<p>Es generiert eine Antwort 302 zusammen mit dem Speicherortkopf, der die URL des neuen Dokuments angibt</p>
</li>
<li>Public void sendError (intcode, Stringmsg)
<p>Es sendet den Statuscode zusammen mit der Kurznachricht und ist im HTML-Dokument formatiert.</p>
</li>
</ol>
<p><strong>Beispiel:</strong></p>
<p>In diesem Beispiel senden wir explizit einen Fehler an die JSP-Seite.</p>
<pre translate="no"><% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><! DOCTYPE html PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv = "Inhaltstyp" content = "text / html; Zeichensatz = ISO-8859-1"><title> Guru-Statuscode </ title></ head><body><% response.sendError (404, "Guru-Seite nicht gefunden"); %></ body></ html></pre>
<p><strong>Erläuterung des Codes:</strong></p>
<p><strong>Codezeile 10:</strong> Mit dem Antwortobjekt senden wir den Fehler an eine Seite mit zwei Parametern.</p>
<ol>
<li>Statuscode - Dies kann einer der oben genannten sein. In diesem Fall haben wir als 404 beschrieben</li>
<li>Nachricht - Es kann sich um eine bestimmte Nachricht handeln, bei der der Fehler angezeigt werden soll</li>
</ol>
<p>Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:</p>
<p><strong>Ausgabe:</strong></p>
<p>Hier erhalten wir den Fehlercode 404, der vom Code gesendet wurde und auch die in der Ausgabe angezeigte Meldung "Guru-Seite nicht gefunden" anzeigt.</p>
<p><strong>Zusammenfassung:</strong></p>
<ul>
<li>In diesem Artikel haben wir Informationen zur Clientanforderung und Serverantwort erhalten, wie die Anforderung abgefangen und wie die Antworten manipuliert werden.</li>
<li>Außerdem haben wir uns mit HTTP-Statuscodes vertraut gemacht, um Fehlercodes oder Erfolgscodes für eine bestimmte Datei anzuzeigen.</li>
</ul>
										</div>
									</article>
									
<div id="container-5533149ee6411a5f99b370c693e87966"></div>								</div>
							</div>
						</div>
					</div>
				</div>
				
<aside class="col-lg-4 sidebar sidebar--right">
	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Beliebte Beiträge</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8224725-selection-sorting-in-java-program-with-example" title="Auswahlsortierung im Java-Programm mit Beispiel" rel="bookmark"><img src="https://cdn.css-code.org/9489235/selection_sorting_in_java_program_with_example.png.webp" loading="lazy" alt="Auswahlsortierung im Java-Programm mit Beispiel" title="Auswahlsortierung im Java-Programm mit Beispiel" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8224725-selection-sorting-in-java-program-with-example" title="Auswahlsortierung im Java-Programm mit Beispiel" rel="bookmark">Auswahlsortierung im Java-Programm mit Beispiel 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8224726-difference-between-comparable-and-comparator-in-java" title="Unterschied zwischen Comparable und Comparator in Java" rel="bookmark"><img src="https://cdn.css-code.org/2318639/difference_between_comparable_and_comparator_in_java.png.webp" loading="lazy" alt="Unterschied zwischen Comparable und Comparator in Java" title="Unterschied zwischen Comparable und Comparator in Java" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8224726-difference-between-comparable-and-comparator-in-java" title="Unterschied zwischen Comparable und Comparator in Java" rel="bookmark">Unterschied zwischen Comparable und Comparator in Java 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8224727-java-vs-scala-what-is-the-difference" title="Java vs Scala: Was ist der Unterschied?" rel="bookmark"><img src="https://cdn.css-code.org/4098085/java_vs_scala_what_is_the_difference_.png.webp" loading="lazy" alt="Java vs Scala: Was ist der Unterschied?" title="Java vs Scala: Was ist der Unterschied?" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8224727-java-vs-scala-what-is-the-difference" title="Java vs Scala: Was ist der Unterschied?" rel="bookmark">Java vs Scala: Was ist der Unterschied? 2025</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>

	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Die besten Bewertungen für den Monat</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226104-15-best-free-photoshop-alternatives-in-2021" title="Die 15 besten KOSTENLOSEN Photoshop-Alternativen im Jahr 2021" rel="bookmark">Die 15 besten KOSTENLOSEN Photoshop-Alternativen im Jahr 2021</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226105-20-best-web-design-software-in-2021-freepaid" title="20+ BESTE Webdesign-Software im Jahr 2021 (kostenlos / bezahlt)" rel="bookmark">20+ BESTE Webdesign-Software im Jahr 2021 (kostenlos / bezahlt)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226106-25-free-adobe-premiere-pro-alternative-in-2021" title="25+ KOSTENLOSE Adobe Premiere Pro Alternative im Jahr 2021" rel="bookmark">25+ KOSTENLOSE Adobe Premiere Pro Alternative im Jahr 2021</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226108-17-best-stock-videos-sites-in-2021-paidroyalty-free-footage" title="17 BEST Stock Videos Sites im Jahr 2021 (Bezahltes / Lizenzfreies Filmmaterial)" rel="bookmark">17 BEST Stock Videos Sites im Jahr 2021 (Bezahltes / Lizenzfreies Filmmaterial)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226109-15-best-free-screen-recorder-software-for-windows-pc" title="15 Beste KOSTENLOSE Bildschirmrekorder-Software für Windows-PCs" rel="bookmark">15 Beste KOSTENLOSE Bildschirmrekorder-Software für Windows-PCs</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226110-20-best-webcam-software-for-windows-2021" title="20 BESTE Webcam-Software für Windows (2021)" rel="bookmark">20 BESTE Webcam-Software für Windows (2021)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226111-15-best-screen-recording-software-for-mac-freepaid" title="15 BESTE Bildschirmaufzeichnungssoftware für MAC (kostenlos / kostenpflichtig)" rel="bookmark">15 BESTE Bildschirmaufzeichnungssoftware für MAC (kostenlos / kostenpflichtig)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226112-22-best-sketchup-alternatives-in-2021" title="22 BESTE Sketchup-Alternativen im Jahr 2021" rel="bookmark">22 BESTE Sketchup-Alternativen im Jahr 2021</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226113-20-best-video-cutter-trimmer-in-2021" title="20+ BEST Video Cutter (Trimmer) im Jahr 2021" rel="bookmark">20+ BEST Video Cutter (Trimmer) im Jahr 2021</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226114-top-35-best-video-editing-software-in-2021-freepaid" title="Top 35 der BESTEN Videobearbeitungssoftware im Jahr 2021 (kostenlos / bezahlt)" rel="bookmark">Top 35 der BESTEN Videobearbeitungssoftware im Jahr 2021 (kostenlos / bezahlt)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226115-25-best-free-green-screen-chroma-key-software-in-2021" title="25+ Beste KOSTENLOSE Green Screen (Chroma Key) Software im Jahr 2021" rel="bookmark">25+ Beste KOSTENLOSE Green Screen (Chroma Key) Software im Jahr 2021</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226116-25-best-free-photo-editing-software-for-windows-10-pc" title="25+ Beste KOSTENLOSE Fotobearbeitungssoftware für Windows 10 PC" rel="bookmark">25+ Beste KOSTENLOSE Fotobearbeitungssoftware für Windows 10 PC</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226117-15-best-unlimited-design-services-free-on-demand-graphics" title="15 BEST Unlimited Design Services (kostenlose On-Demand-Grafiken)" rel="bookmark">15 BEST Unlimited Design Services (kostenlose On-Demand-Grafiken)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226118-15-best-video-compressor-in-2021-freepaid" title="15+ BEST Video Compressor im Jahr 2021 (kostenlos / bezahlt)" rel="bookmark">15+ BEST Video Compressor im Jahr 2021 (kostenlos / bezahlt)</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8226119-20-best-gif-maker-gif-editor-software-free-download" title="20 Bester GIF-Hersteller - GIF Editor Software (kostenloser Download)" rel="bookmark">20 Bester GIF-Hersteller - GIF Editor Software (kostenloser Download)</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>
	
<div id="container-5533149ee6411a5f99b370c693e87966"></div>	<div class="widget widget-popular-posts">
		<h2 class="widget-title">Top Artikel</h2>
		<ul class="post-list-small">
			<li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8004275-30-creating-and-sending-html-email" title="# 30: Erstellen und Senden von HTML-E-Mails - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/1765423/30_creating_and_sending_html_email_css-tricks.png.webp" loading="lazy" alt="# 30: Erstellen und Senden von HTML-E-Mails - CSS-Tricks" title="# 30: Erstellen und Senden von HTML-E-Mails - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8004275-30-creating-and-sending-html-email" title="# 30: Erstellen und Senden von HTML-E-Mails - CSS-Tricks" rel="bookmark"># 30: Erstellen und Senden von HTML-E-Mails - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8004276-38-basics-and-tips-on-designing-for-the-iphone" title="# 38: Grundlagen und Tipps zum Entwerfen für das iPhone - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/9024372/38_basics_tips_on_designing_for_the_iphone_css-tricks.png.webp" loading="lazy" alt="# 38: Grundlagen und Tipps zum Entwerfen für das iPhone - CSS-Tricks" title="# 38: Grundlagen und Tipps zum Entwerfen für das iPhone - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8004276-38-basics-and-tips-on-designing-for-the-iphone" title="# 38: Grundlagen und Tipps zum Entwerfen für das iPhone - CSS-Tricks" rel="bookmark"># 38: Grundlagen und Tipps zum Entwerfen für das iPhone - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li><li class="post-list-small__item">
				<div class="post-list-small__entry clearfix">
					<div class="post-list-small__img-holder">
						<div class="thumb-container thumb-100"><a href="/8004277-39-how-to-use-sifr-3" title="# 39: Verwendung von sIFR 3 - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/2607181/39_how_to_use_sifr_3_css-tricks.png.webp" loading="lazy" alt="# 39: Verwendung von sIFR 3 - CSS-Tricks" title="# 39: Verwendung von sIFR 3 - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div>
					</div>
					<div class="post-list-small__body">
						<h3 class="post-list-small__entry-title"><a href="/8004277-39-how-to-use-sifr-3" title="# 39: Verwendung von sIFR 3 - CSS-Tricks" rel="bookmark"># 39: Verwendung von sIFR 3 - CSS-Tricks 2025</a></h3>
					</div>
				</div>
			</li>
		</ul>
	</div>
</aside>			</div>
		</div>
		
<footer class="footer footer--dark">
	<div class="container">
		<div class="footer__widgets">
			<div class="row">
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Beliebte Beiträge</h2>
						<ul class="post-list-small">
							<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003835-fixing-ie-z-index" title="Fix IE Z-Index - CSS-Tricks" rel="bookmark">Fix IE Z-Index - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003837-get-an-images-native-width" title="Holen Sie sich ein Bild Native Width - CSS-Tricks" rel="bookmark">Holen Sie sich ein Bild Native Width - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003838-get-query-params-as-object" title="Abfrageparameter als Objekt abrufen - CSS-Tricks" rel="bookmark">Abfrageparameter als Objekt abrufen - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003839-fixing-load-in-ie-for-cached-images" title="Behebung von .load () im IE für zwischengespeicherte Bilder - CSS-Tricks" rel="bookmark">Behebung von .load () im IE für zwischengespeicherte Bilder - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003840-get-x-y-coordinates-of-mouse-within-box" title="Holen Sie sich X, Y Koordinaten der Maus in Box - CSS-Tricks" rel="bookmark">Holen Sie sich X, Y Koordinaten der Maus in Box - CSS-Tricks</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Tipp Der Redaktion</h2>
						<ul class="post-list-small">
						<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003496-css-grid-starter-layouts" title="CSS Grid Starter Layouts - CSS-Tricks" rel="bookmark">CSS Grid Starter Layouts - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003497-css-text-shadow" title="CSS Text Shadow - CSS-Tricks" rel="bookmark">CSS Text Shadow - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003498-custom-checkboxes-and-radio-buttons" title="Benutzerdefinierte Kontrollkästchen und Optionsfelder - CSS-Tricks" rel="bookmark">Benutzerdefinierte Kontrollkästchen und Optionsfelder - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003499-css-repeating-gradients" title="CSS-Wiederholungsverläufe - CSS-Tricks" rel="bookmark">CSS-Wiederholungsverläufe - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003501-custom-radio-buttons" title="Benutzerdefinierte Optionsfelder - CSS-Tricks" rel="bookmark">Benutzerdefinierte Optionsfelder - CSS-Tricks</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
				<div class="col-lg-4">
					<div class="widget">
						<h2 class="widget-title">Top Artikel</h2>
						<ul class="post-list-small">
						<li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003125-in-range" title=": in Reichweite - CSS-Tricks" rel="bookmark">: in Reichweite - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003126-last-child" title=": letztes Kind - CSS-Tricks" rel="bookmark">: letztes Kind - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003127-link" title=": link - CSS-Tricks" rel="bookmark">: link - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003128-matches" title=": Übereinstimmungen () - CSS-Tricks" rel="bookmark">: Übereinstimmungen () - CSS-Tricks</a></h3>
									</div>
								</div>
							</li><li class="post-list-small__item">
								<div>
									<div>
										<h3 class="post-list-small__entry-title"><a href="/8003129-focus-visible" title=": Fokus sichtbar - CSS-Tricks" rel="bookmark">: Fokus sichtbar - CSS-Tricks</a></h3>
									</div>
								</div>
							</li>
						</ul>
					</div>
				</div>
			</div>
			<p>© Copyright de.css-code.org, 2025 April | 
				<a href="https://de.css-code.org/about-site" title="Über Site">Über Site</a> | 
				<a href="https://de.css-code.org/contacts" title="Kontakte">Kontakte</a> | 
				<a href="https://de.css-code.org/privacy-policy" title="Datenschutz-Bestimmungen">Datenschutz-Bestimmungen</a>.
			</p>
			
		</div>
	</div>
</footer>		
<link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" />	</body>
</html>