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());
}
}
}
|