Ich weiß nicht, aber ich fühle, dass Illegal verursacht Kopfschmerzen rückgängig gemacht werden. Wenn ich eine Anfrage habe, sage eine JSP oder ein anderes Servlet und muss dieser Anfrage einen Filter zuordnen. Ich kann keine anderen Änderungen an der Ausgabe an den Client vornehmen, wenn die Antwort bereits festgeschrieben wurde?Vermeiden von Illegal in Java/Servlet Web Stack
Zum Beispiel sehe ich im JSP-Code, der den Mimetyp response.setContent ("html") setzt und dann habe ich einen Filter mit der JSP, der den Mimetyp auf etwas setzen muss sonst. setContent ("Bild") oder "xhtml". Aber ich bekomme eine IllegalStateException?
Gibt es eine Möglichkeit, die vorherige Antwort zu löschen, die begangen wurde, oder gibt es etwas, um dieses Problem zu vermeiden.
Dies ist auf Websphere.
Das ist in Ordnung, aber es gibt so viel in der J2EE-Welt, die auch die Antwort ändern kann. Das macht es mir unmöglich, Output Mimetypen und andere solche Dinge zu ändern. –
Hier ist der Haken (oder eine Frage zu berücksichtigen). An welchem Punkt wird die Ausgabe an den Client (den Browser) geschrieben. Denn sobald es soweit ist, gibt es kein Zurück :-) Das ist der Grund, warum das Antwortobjekt es nicht erlaubt, Attribute etc. zu ändern. –
Stellen Sie sich vor, Sie hätten eine JSP. Sie haben einen Filter für diesen JSP. Abhängig von dem, was der Filter tut, können Sie eine response.sendRedirect tun. In Websphere 5.1, anscheinend die JSP, schreibt standardmäßig das resp und setzt den mimetype. IllegalState wenn auf sendRedierct –