01: /*
02: * Copyright 1999,2004 The Apache Software Foundation.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package org.apache.jasper.runtime;
18:
19: import java.io.IOException;
20: import java.io.PrintWriter;
21:
22: import javax.servlet.ServletOutputStream;
23: import javax.servlet.ServletResponse;
24: import javax.servlet.http.HttpServletResponse;
25: import javax.servlet.http.HttpServletResponseWrapper;
26: import javax.servlet.jsp.JspWriter;
27:
28: /**
29: * ServletResponseWrapper used by the JSP 'include' action.
30: *
31: * This wrapper response object is passed to RequestDispatcher.include(), so
32: * that the output of the included resource is appended to that of the
33: * including page.
34: *
35: * @author Pierre Delisle
36: */
37:
38: public class ServletResponseWrapperInclude extends
39: HttpServletResponseWrapper {
40:
41: /**
42: * PrintWriter which appends to the JspWriter of the including page.
43: */
44: private PrintWriter printWriter;
45:
46: private JspWriter jspWriter;
47:
48: public ServletResponseWrapperInclude(ServletResponse response,
49: JspWriter jspWriter) {
50: super ((HttpServletResponse) response);
51: this .printWriter = new PrintWriter(jspWriter);
52: this .jspWriter = jspWriter;
53: }
54:
55: /**
56: * Returns a wrapper around the JspWriter of the including page.
57: */
58: public PrintWriter getWriter() throws IOException {
59: return printWriter;
60: }
61:
62: public ServletOutputStream getOutputStream() throws IOException {
63: throw new IllegalStateException();
64: }
65:
66: /**
67: * Clears the output buffer of the JspWriter associated with the including
68: * page.
69: */
70: public void resetBuffer() {
71: try {
72: jspWriter.clearBuffer();
73: } catch (IOException ioe) {
74: }
75: }
76: }
|