diff -r 2472d9e9c0aa -r d874e9e3e162 java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java Tue Jan 25 22:03:46 2011 +0100 @@ -0,0 +1,40 @@ +package cz.frantovo.nekurak.servlet; + +import java.io.IOException; +import java.util.Locale; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author fiki + */ +public class SuperServlet extends HttpServlet { + + public static final String PARAMETR_JAZYK = "jazyk"; + private static final String ATRIBUT_JAZYK = "javax.servlet.jsp.jstl.fmt.locale.session"; + + @Override + protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException { + společné(požadavek, odpověď); + } + + /** + * Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.) + */ + private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException { + nastavJazyk(požadavek); + } + + /** + * Pokud se chce uživatel ručně přepnout na jiný jazyk, než jaký posílá jeho prohlížeč. + */ + private void nastavJazyk(HttpServletRequest požadavek) { + String jazyk = požadavek.getParameter(PARAMETR_JAZYK); + if (jazyk != null) { + požadavek.getSession().setAttribute(ATRIBUT_JAZYK, new Locale(jazyk)); + } + } +}