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/";
22 protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
23 společné(požadavek, odpověď);
27 * <p>Vytáhne z požadované cesty (konec URL) ID objektu.</p>
30 * pro <code>GET /podnik/123</code>
31 * vrátí 123 (podnik je název objektu/akce)
34 * @param požadavek HTTP požadavek
37 protected int getIdCesty(HttpServletRequest požadavek) {
38 String[] parametryCesty = (požadavek.getPathInfo().split("/"));
39 return Integer.parseInt(parametryCesty[1]);
43 * Vykreslí stránku pomocí JSP šablony
44 * @param jsp JSP šablona stránky – např. detail.jsp (nacházejí se v /WEB-INF/casti/)
46 protected void zpracujJSP(String jsp, HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
47 /** Nastavení správného MIME typu */
48 //požadavek.setAttribute("jspMimeTyp", MIME_TYP);
50 * odpověď.setContentType(MIME_TYP); – nefunguje (JSP si tam procpe svoje text/xml)
53 * Mělo by jít změnit přes web.xml:
56 <url-pattern>/</url-pattern>
57 <default-content-type>application/xhtml+xml</default-content-type>
61 RequestDispatcher rd = getServletContext().getRequestDispatcher(ADRESAR_SABLON + jsp);
62 rd.forward(požadavek, new XhtmlOdpověď(odpověď));
66 * Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.)
68 private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
69 nastavJazyk(požadavek);
73 * Pokud se chce uživatel ručně přepnout na jiný jazyk, než jaký posílá jeho prohlížeč.
75 private void nastavJazyk(HttpServletRequest požadavek) {
76 String jazyk = požadavek.getParameter(PARAMETR_JAZYK);
78 požadavek.getSession().setAttribute(ATRIBUT_JAZYK, new Locale(jazyk));