[Ejtools-cvs] CVS: libraries/common/src/main/net/sourceforge/ejtools/servlet/http CharResponseWrappe
Brought to you by:
letiemble
From: Laurent E. <let...@us...> - 2002-04-19 07:04:53
|
Update of /cvsroot/ejtools/libraries/common/src/main/net/sourceforge/ejtools/servlet/http In directory usw-pr-cvs1:/tmp/cvs-serv20740a/http Added Files: CharResponseWrapper.java StringResponseWrapper.java XSLFilter.java Log Message: Initial Import --- NEW FILE: CharResponseWrapper.java --- /* * EJTools, the Enterprise Java Tools * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.sourceforge.ejtools.servlet.http; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; /** * Description of the Interface * * @author laurent * @created 11 avril 2002 */ public class CharResponseWrapper extends HttpServletResponseWrapper { protected CharArrayWriter output = null; public CharResponseWrapper(HttpServletResponse response) { super(response); output = new CharArrayWriter(); } public String toString() { return output.toString(); } public PrintWriter getWriter() { return new PrintWriter(output); } } --- NEW FILE: StringResponseWrapper.java --- /* * EJTools, the Enterprise Java Tools * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.sourceforge.ejtools.servlet.http; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; /** * Description of the Interface * * @author laurent * @created 11 avril 2002 */ public class StringResponseWrapper extends HttpServletResponseWrapper { protected StringWriter output = null; public StringResponseWrapper(HttpServletResponse response) { super(response); output = new StringWriter(); } public String toString() { return output.toString(); } public PrintWriter getWriter() { return new PrintWriter(output); } } --- NEW FILE: XSLFilter.java --- /* * EJTools, the Enterprise Java Tools * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.sourceforge.ejtools.servlet.http; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; /** * Description of the Interface * * @author laurent * @created 11 avril 2002 */ public class XSLFilter implements Filter { protected Transformer transformer = null; protected String contentType = null; protected FilterConfig config = null; public void init(FilterConfig config) throws ServletException { this.config = config; System.out.println("Acquiring parameters..."); this.contentType = config.getInitParameter("mime-type"); String styleSheet = config.getInitParameter("stylesheet"); System.out.println("Acquiring styletsheet " + styleSheet ); String stylePath = config.getServletContext().getRealPath(styleSheet); try { System.out.println("Compiling styletsheet " + stylePath); TransformerFactory tFactory = TransformerFactory.newInstance(); transformer = tFactory.newTransformer(new StreamSource(stylePath)); } catch (Exception e) { transformer = null; throw new ServletException(e.toString()); } } public void destroy() { this.config = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { StringResponseWrapper wrapper = new StringResponseWrapper((HttpServletResponse) response); chain.doFilter(request, wrapper); response.setContentType(contentType); PrintWriter out = response.getWriter(); StringReader reader = new StringReader(wrapper.toString()); Source source = new StreamSource(reader); try { StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source, result); response.setContentLength(writer.toString().length()); out.println(writer.toString()); } catch (Exception e) { out.println(e.toString()); out.println(wrapper.toString()); } } } |