1 package cz.frantovo.nekurak.servlet;
3 import java.io.IOException;
4 import java.util.Locale;
5 import javax.servlet.RequestDispatcher;
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServlet;
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
15 public class SuperServlet extends HttpServlet {
17 public static final String PARAMETR_JAZYK = "jazyk";
18 private static final String ATRIBUT_JAZYK = "javax.servlet.jsp.jstl.fmt.locale.session";
19 private static final String ADRESAR_SABLON = "/WEB-INF/casti/";
23 protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
24 společné(požadavek, odpověď);
28 * Vykreslí stránku pomocí JSP šablony
29 * @param jsp JSP šablona stránky – např. detail.jsp (nacházejí se v /WEB-INF/casti/)
31 protected void zpracujJSP(String jsp, HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
32 /** Nastavení správného MIME typu */
33 //požadavek.setAttribute("jspMimeTyp", MIME_TYP);
39 * odpověď.setContentType(MIME_TYP); – nefunguje (JSP si tam procpe svoje text/xml)
42 * Mělo by jít změnit přes web.xml:
45 <url-pattern>/</url-pattern>
46 <default-content-type>application/xhtml+xml</default-content-type>
50 RequestDispatcher rd = getServletContext().getRequestDispatcher(ADRESAR_SABLON + jsp);
51 rd.forward(požadavek, new XhtmlOdpověď(odpověď));
55 * Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.)
57 private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
58 nastavJazyk(požadavek);
62 * Pokud se chce uživatel ručně přepnout na jiný jazyk, než jaký posílá jeho prohlížeč.
64 private void nastavJazyk(HttpServletRequest požadavek) {
65 String jazyk = požadavek.getParameter(PARAMETR_JAZYK);
67 požadavek.getSession().setAttribute(ATRIBUT_JAZYK, new Locale(jazyk));