You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/03/04 16:37:22 UTC
DO NOT REPLY [Bug 24970] -
charset appended to content-type even if not text/*
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=24970>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=24970
------- Additional Comments From Michiel.Meeuwissen@omroep.nl 2005-03-04 16:37 -------
I have a work-around in the form of a Filter. This filter uses a ResponseWrapper
to wrap getWriter:
public void doFilter(ServletRequest servletRequest, ServletResponse
servletResponse, FilterChain filterChain)
throws java.io.IOException, ServletException {
HttpServletResponseWrapper wrapper = new
HttpServletResponseWrapper((HttpServletResponse) servletResponse) {
private String contentType;
public void setContentType(String ct) {
contentType = ct;
super.setContentType(ct);
}
/**
* This is the essence of this whole thing. The idea
* is to fake the use of getOutputStream(). Then you
* are in byte-writing mode. and charset's become
* irrelevant,and tomcat will not add one any more.
*/
public PrintWriter getWriter() throws IOException {
if (contentTypes.contains(contentType)) {
log.debug("Wrapping outputstream to avoid charset");
try {
// ISO-8859-1 is default for HTTP
return new PrintWriter(new BufferedWriter(new
OutputStreamWriter(getOutputStream(), "ISO-8859-1")));
} catch (UnsupportedEncodingException uee) {
// could not happen
return super.getWriter();
}
} else {
if (log.isDebugEnabled()) {
log.debug(" " + contentType + " is not contained by
" + contentTypes);
}
return super.getWriter();
}
}
};
filterChain.doFilter(servletRequest, wrapper);
}
So, you can configure a set of contentypes for which no charset is added and
which therefore must be in ISO-8859-1.
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org