2009-07-31 7 views
1

Vielen Dank an alle im Voraus -für JspWriter Übernahme

ich noch einen einfachen Weg zu finden, dies aber zu tun, ist es möglich, JspWriter über den Umgang mit den Daten (Header und alles) geschrieben nehmen? Wie eine Verbindung, um diesen Puffer dynamisch zu verwalten und dann die Ausgabe an JspWriter zu steuern? Ich stoße auf Probleme mit Redirects, wo der Statusheader wegen einiger meiner Includes bereits geleert wird (ich denke, es ist die Includes, aber unabhängig davon, dass es definitiv den Puffer löscht).

Ich bin mir bewusst, buffer setting Größen usw.

Ich bin nicht einen Rahmen, nur reine jsp auf tomcat verwenden.

Danke,

Sam

Antwort

3

können Sie versuchen, eine Filter Schreiben und Kartierung es Ihre JSPs abfangen:

(excerpt from web.xml) 
<filter> 
    <filter-name>jspFilter</filter-name> 
    <filter-class>com.mypackage.JspFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>jspFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 

In Ihrem doFilter() Methode Implementierung Sie die Servlet-Antwort in Ihre eigene wickeln kann durch Erweitern HttpServletResponseWrapper und Überschreiben seiner getWriter()/getOutputStream() Methoden, StringWriter zu verwenden, um die Antwort zu puffern. Nachdem Sie doFilter() Methode aufgerufen haben und es zurückgibt (oder eine Ausnahme auslöst) können Sie mit der gepufferten Antwort machen, was Sie wollen - drucken Sie es aus, umleiten auf eine andere Seite, was haben Sie.

+0

Danke nochmal für die response- ich diesen Code gefunden, die ich irgendwie denke, das tut, was es überhaupt geht: http://docstore.mik.ua/orelly/xml/jxslt/ch08_04.htm#javaxslt -CHP-8-EX-10 Würde ich in der Lage sein, dies im Rahmen von jsp (dh <%! %>) zu überschreiben? Zum Beispiel: jspFilter jspfilter.jsp jspFilter * .jsp Wann wird doFilter() tatsächlich aufgerufen und wo wird das tatsächlich platziert? Danke, Sam –

+0

Ja, 'BufferedHttpResponseWrapper' im obigen Link macht, worüber ich spreche. Ich bin mir nicht sicher, was Sie mit "überschreiben im Kontext von JSP" meinen - dass Sie Filter als JSP implementieren möchten? Das kann nicht gemacht werden, es muss eine Java-Klasse sein. Es gibt ein Beispiel ('MyFilter') in Ihrem Link, Sie können auch hier nachschauen: http://java.sun.com/javaee/5/docs/tutorial/doc/bnagb.html Kompilierte Filterklasse muss sein Wird sie als Teil Ihrer Webanwendung implementiert (Sie können sie in/WEB-INF/classes einfügen), wird die Methode doFilter() automatisch vom Servlet-Container (Tomcat) aufgerufen. – ChssPly76

+0

Vielen Dank für Ihre Hilfe! –

Verwandte Themen