XhtmlOdpověď: obal kolem HttpServletResponse kvůli správnému MIME typu.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 26 Jan 2011 03:24:40 +0100
changeset 1807eb749d4a949
parent 179 2ed9f3231a28
child 181 bcf03fc1e3f9
XhtmlOdpověď: obal kolem HttpServletResponse kvůli správnému MIME typu.
java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/XhtmlOdpověď.java
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/XhtmlOdpověď.java	Wed Jan 26 03:24:40 2011 +0100
     1.3 @@ -0,0 +1,49 @@
     1.4 +package cz.frantovo.nekurak.servlet;
     1.5 +
     1.6 +import javax.servlet.http.HttpServletResponse;
     1.7 +import javax.servlet.http.HttpServletResponseWrapper;
     1.8 +
     1.9 +/**
    1.10 + * Obal kolem HTTP odpovědi, který zajistí, že i při přesměrování na JSP přes RequestDispatcher
    1.11 + * se nastaví správný MIME typ a kódování.
    1.12 + *
    1.13 + * Možná by mělo fungovat, ale nefunguje nastavení ve web.xml:
    1.14 + * <jsp-config>
    1.15 + * <jsp-property-group>
    1.16 + * <url-pattern>/</url-pattern>
    1.17 + * <default-content-type>application/xhtml+xml</default-content-type>
    1.18 + * </jsp-property-group>
    1.19 + * </jsp-config>
    1.20 + *
    1.21 + * Při přesměrování se tam vždy dostalo text/xml
    1.22 + * nepomohlo ani:
    1.23 + * <jsp:directive.page contentType="application/xhtml+xml"/>
    1.24 + * v JSP stránce (které normálně funguje – viz index.jsp).
    1.25 + *
    1.26 + * @author fiki
    1.27 + */
    1.28 +public class XhtmlOdpověď extends HttpServletResponseWrapper {
    1.29 +
    1.30 +	private static final String MIME_TYP = "application/xhtml+xml; charset=utf-8";
    1.31 +
    1.32 +	public XhtmlOdpověď(HttpServletResponse odpověď) {
    1.33 +		super(odpověď);
    1.34 +	}
    1.35 +
    1.36 +	/**
    1.37 +	 * Vynutí správný typ a kódování
    1.38 +	 * @param type ignoruje se
    1.39 +	 */
    1.40 +	@Override
    1.41 +	public void setContentType(String type) {
    1.42 +		super.setContentType(MIME_TYP);
    1.43 +	}
    1.44 +
    1.45 +	/**
    1.46 +	 * @return Vynutí správný typ a kódování
    1.47 +	 */
    1.48 +	@Override
    1.49 +	public String getContentType() {
    1.50 +		return MIME_TYP;
    1.51 +	}
    1.52 +}