java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java
author František Kučera <franta-hg@frantovo.cz>
Wed Jan 26 03:23:32 2011 +0100 (2011-01-26)
changeset 179 2ed9f3231a28
parent 177 d874e9e3e162
child 193 5ec59a8d902e
permissions -rw-r--r--
Servlety: základ, detail podniku se už zobrazuje přes servlet
URL budou hezčí, lépe struktorvaná – ale nemůžou se používat relativní jako dotěď,
musíme začínat vždy / (contextPath)

TODO:
- postupně předělat všechny stránky
- opravit javascript
- zkontrolovat další relativní URL
franta-hg@177
     1
package cz.frantovo.nekurak.servlet;
franta-hg@177
     2
franta-hg@177
     3
import java.io.IOException;
franta-hg@177
     4
import java.util.Locale;
franta-hg@179
     5
import javax.servlet.RequestDispatcher;
franta-hg@177
     6
import javax.servlet.ServletException;
franta-hg@177
     7
import javax.servlet.http.HttpServlet;
franta-hg@177
     8
import javax.servlet.http.HttpServletRequest;
franta-hg@177
     9
import javax.servlet.http.HttpServletResponse;
franta-hg@177
    10
franta-hg@177
    11
/**
franta-hg@177
    12
 *
franta-hg@177
    13
 * @author fiki
franta-hg@177
    14
 */
franta-hg@177
    15
public class SuperServlet extends HttpServlet {
franta-hg@177
    16
franta-hg@177
    17
	public static final String PARAMETR_JAZYK = "jazyk";
franta-hg@177
    18
	private static final String ATRIBUT_JAZYK = "javax.servlet.jsp.jstl.fmt.locale.session";
franta-hg@179
    19
	private static final String ADRESAR_SABLON = "/WEB-INF/casti/";
franta-hg@179
    20
	
franta-hg@177
    21
franta-hg@177
    22
	@Override
franta-hg@177
    23
	protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
franta-hg@177
    24
		společné(požadavek, odpověď);
franta-hg@177
    25
	}
franta-hg@177
    26
franta-hg@177
    27
	/**
franta-hg@179
    28
	 * Vykreslí stránku pomocí JSP šablony
franta-hg@179
    29
	 * @param jsp JSP šablona stránky – např. detail.jsp (nacházejí se v /WEB-INF/casti/)
franta-hg@179
    30
	 */
franta-hg@179
    31
	protected void zpracujJSP(String jsp, HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
franta-hg@179
    32
		/** Nastavení správného MIME typu */
franta-hg@179
    33
		//požadavek.setAttribute("jspMimeTyp", MIME_TYP);
franta-hg@179
    34
franta-hg@179
    35
franta-hg@179
    36
franta-hg@179
    37
franta-hg@179
    38
		/**
franta-hg@179
    39
		 * odpověď.setContentType(MIME_TYP); – nefunguje (JSP si tam procpe svoje text/xml)
franta-hg@179
    40
		 */
franta-hg@179
    41
		/*
franta-hg@179
    42
		 * Mělo by jít změnit přes web.xml:
franta-hg@179
    43
		<jsp-config>
franta-hg@179
    44
		<jsp-property-group>
franta-hg@179
    45
		<url-pattern>/</url-pattern>
franta-hg@179
    46
		<default-content-type>application/xhtml+xml</default-content-type>
franta-hg@179
    47
		</jsp-property-group>
franta-hg@179
    48
		</jsp-config>
franta-hg@179
    49
		 */
franta-hg@179
    50
		RequestDispatcher rd = getServletContext().getRequestDispatcher(ADRESAR_SABLON + jsp);
franta-hg@179
    51
		rd.forward(požadavek, new XhtmlOdpověď(odpověď));
franta-hg@179
    52
	}
franta-hg@179
    53
franta-hg@179
    54
	/**
franta-hg@177
    55
	 * Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.)
franta-hg@177
    56
	 */
franta-hg@177
    57
	private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
franta-hg@177
    58
		nastavJazyk(požadavek);
franta-hg@177
    59
	}
franta-hg@177
    60
franta-hg@177
    61
	/**
franta-hg@177
    62
	 * Pokud se chce uživatel ručně přepnout na jiný jazyk, než jaký posílá jeho prohlížeč.
franta-hg@177
    63
	 */
franta-hg@177
    64
	private void nastavJazyk(HttpServletRequest požadavek) {
franta-hg@177
    65
		String jazyk = požadavek.getParameter(PARAMETR_JAZYK);
franta-hg@177
    66
		if (jazyk != null) {
franta-hg@177
    67
			požadavek.getSession().setAttribute(ATRIBUT_JAZYK, new Locale(jazyk));
franta-hg@177
    68
		}
franta-hg@177
    69
	}
franta-hg@177
    70
}