java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/XhtmlOdpověď.java
author František Kučera <franta-hg@frantovo.cz>
Wed Jan 26 03:24:40 2011 +0100 (2011-01-26)
changeset 180 7eb749d4a949
permissions -rw-r--r--
XhtmlOdpověď: obal kolem HttpServletResponse kvůli správnému MIME typu.
franta-hg@180
     1
package cz.frantovo.nekurak.servlet;
franta-hg@180
     2
franta-hg@180
     3
import javax.servlet.http.HttpServletResponse;
franta-hg@180
     4
import javax.servlet.http.HttpServletResponseWrapper;
franta-hg@180
     5
franta-hg@180
     6
/**
franta-hg@180
     7
 * Obal kolem HTTP odpovědi, který zajistí, že i při přesměrování na JSP přes RequestDispatcher
franta-hg@180
     8
 * se nastaví správný MIME typ a kódování.
franta-hg@180
     9
 *
franta-hg@180
    10
 * Možná by mělo fungovat, ale nefunguje nastavení ve web.xml:
franta-hg@180
    11
 * <jsp-config>
franta-hg@180
    12
 * <jsp-property-group>
franta-hg@180
    13
 * <url-pattern>/</url-pattern>
franta-hg@180
    14
 * <default-content-type>application/xhtml+xml</default-content-type>
franta-hg@180
    15
 * </jsp-property-group>
franta-hg@180
    16
 * </jsp-config>
franta-hg@180
    17
 *
franta-hg@180
    18
 * Při přesměrování se tam vždy dostalo text/xml
franta-hg@180
    19
 * nepomohlo ani:
franta-hg@180
    20
 * <jsp:directive.page contentType="application/xhtml+xml"/>
franta-hg@180
    21
 * v JSP stránce (které normálně funguje – viz index.jsp).
franta-hg@180
    22
 *
franta-hg@180
    23
 * @author fiki
franta-hg@180
    24
 */
franta-hg@180
    25
public class XhtmlOdpověď extends HttpServletResponseWrapper {
franta-hg@180
    26
franta-hg@180
    27
	private static final String MIME_TYP = "application/xhtml+xml; charset=utf-8";
franta-hg@180
    28
franta-hg@180
    29
	public XhtmlOdpověď(HttpServletResponse odpověď) {
franta-hg@180
    30
		super(odpověď);
franta-hg@180
    31
	}
franta-hg@180
    32
franta-hg@180
    33
	/**
franta-hg@180
    34
	 * Vynutí správný typ a kódování
franta-hg@180
    35
	 * @param type ignoruje se
franta-hg@180
    36
	 */
franta-hg@180
    37
	@Override
franta-hg@180
    38
	public void setContentType(String type) {
franta-hg@180
    39
		super.setContentType(MIME_TYP);
franta-hg@180
    40
	}
franta-hg@180
    41
franta-hg@180
    42
	/**
franta-hg@180
    43
	 * @return Vynutí správný typ a kódování
franta-hg@180
    44
	 */
franta-hg@180
    45
	@Override
franta-hg@180
    46
	public String getContentType() {
franta-hg@180
    47
		return MIME_TYP;
franta-hg@180
    48
	}
franta-hg@180
    49
}