{"id":2358,"date":"2013-09-22T12:33:58","date_gmt":"2013-09-22T10:33:58","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2358"},"modified":"2013-09-22T12:33:58","modified_gmt":"2013-09-22T10:33:58","slug":"in-servlets-seiten-ber-http-redirect-umlenken","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/in-servlets-seiten-ber-http-redirect-umlenken\/","title":{"rendered":"In Servlets Seiten &uuml;ber HTTP-Redirect umlenken"},"content":{"rendered":"<p>Ist eine Seite nicht mehr korrekt, kann sie umgelenkt werden. Hierf\u00fcr wird ein spezieller Header gesetzt.<\/p>\n<h3>sendRedirect()<\/h3>\n<p>Dazu dient die Methode <b>sendRedirect(String)<\/b>, die auf eine neue Seite verweist. Als Argument kann eine relative oder absolute URL aufgef\u00fchrt werden, die auf eine tempor\u00e4re neue Seite weist. Wir k\u00f6nnten auch mit <b>setHeader()<\/b> arbeiten, m\u00fcssten dann aber von Hand den Statuscode \u00e4ndern, der f\u00fcr Umleitungen auf 302 gesetzt sein muss. Die Arbeit k\u00f6nnen wir uns sparen. Nach dem Setzen der Umleitung sollte nicht mehr in die Ausgabe geschrieben werden.<\/p>\n<p>Wozu kann nun diese Umleitung eingesetzt werden? Zum Beispiel, um \u00fcber Formular-Parameter zu externen Seiten weiterzuleiten:<\/p>\n<pre>response.sendRedirect( url );<\/pre>\n<p>Nach der Umleitung steht der Ort der neuen Seite in der URL-Zeile des Browsers. Das folgende Programm verweist nun einfach auf ein anderes Servlet. Die Pfadangabe kann absolut oder relativ sein.<\/p>\n<pre>String url = &quot;http:\/\/www.tutego.de\/&quot;;\nresponse.sendRedirect( url );<\/pre>\n<h3>Was passiert beim Umlenken?<\/h3>\n<p>Technisch gesehen ist eine Umlenkseite eine ganz normale Webseite. Das wirkliche Umlenken ist eine F\u00e4higkeit des Browsers und nicht des Servers. Dies ist wichtig anzumerken, weil eigene Programme, die URL-Verweise aufbauen, hier oft nicht korrekt vorgehen.<\/p>\n<p>Das Servlet setzt beim <b>sendRedirect()<\/b> den Content-Type auf &quot;text\/html&quot;. Wichtig sind zwei weitere Informationen: die eine in der Statuszeile und die andere im Header. In der Statuszeile wird die Nummer 302 gesendet, die das Umlenken bezeichnet. Die Information dar\u00fcber, wohin verwiesen wird, steht in einem weiteren Header namens \u00bbLocation\u00ab. Somit k\u00f6nnen wir unser Redirect prinzipiell auch selbst ausformulieren, indem wir Folgendes schreiben:<\/p>\n<pre>response.setStatus( 302 );\nresponse.setContentType( &quot;text\/html&quot; );\nresponse.setHeader( &quot;Location&quot;, url );<\/pre>\n<p>Der String <b>url<\/b> ist dann eine Referenz auf die neue Seite. Der Verweis auf die externe Seite muss dann nat\u00fcrlich absolut sein. Dies regelt jedoch <b>sendRedirect()<\/b> automatisch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ist eine Seite nicht mehr korrekt, kann sie umgelenkt werden. Hierf\u00fcr wird ein spezieller Header gesetzt. sendRedirect() Dazu dient die Methode sendRedirect(String), die auf eine neue Seite verweist. Als Argument kann eine relative oder absolute URL aufgef\u00fchrt werden, die auf eine tempor\u00e4re neue Seite weist. Wir k\u00f6nnten auch mit setHeader() arbeiten, m\u00fcssten dann aber von [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[9,15],"tags":[],"class_list":["post-2358","post","type-post","status-publish","format-standard","hentry","category-java-ee","category-web-frameworks"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2358"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2358\/revisions"}],"predecessor-version":[{"id":2359,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2358\/revisions\/2359"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}