/** * Kun käyttäjä menee "drinkkilista.jsp"-sivulle, käydään tässä servletissä ensin. Jos käyttäjä on * kirjautunut sisään, luodaan attribuutti, jolla annetaan sivulla oikeus lisätä uusia drinkkejä. * Jos on kirjautunut adminina sisään, luodaan lisäksi attribuutti, jolla annetaan oikeus * lisätä/poistaa juomalajeja & ainesosia. * * <p>Jos kyseisellä sivulla käyttäjä painoi lomaketta, jolla järjestetään listatut * drinkkireseptit nimen tai juomalajin mukaan, tehdään se. Joka tapauksessa asetetaan * attribuutti, jossa on arvona lista drinkkiresepteistä. * * <p>Lopuksi aina asetetaan attribuutit, joissa on arvoina lista juomalajeista ja ainesosista ja * tämän jälkeen ohjataan käyttäjä "drinkkilista.jsp"-sivulle. * * @param request HTTP-pyyntö. * @param response HTTP-vastaus. */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getSession().getAttribute("tunnus") != null) { // jos ei ole kirjautunut sisälle, ei pysty lisäämään drinkkiä request.setAttribute("lisays", "lisaa"); String tunnus = (String) request.getSession().getAttribute("tunnus"); if (tunnus.equals("Admin")) request.setAttribute("AdminRights", "AdminOK"); } if (request.getParameter("sortByName") == null && request.getParameter("sortByCategory") == null) request.setAttribute("juomat", rekisteri.getJuomat()); // pyynnön attribuutiksi lista juomista else if (request.getParameter("sortByName") != null) jarjestaNimenMukaan( request); // jos painettiin form-nappia "järjestä nimen mukaan", järjestetään juomat nimen // mukaan else if (request.getParameter("sortByCategory") != null) jarjestaLajinMukaan(request); request.setAttribute( "lajit", rekisteri.getJuomaLajit()); // pyynnön attribuutiksi lista juomalajeista request.setAttribute( "ainesosat", rekisteri.getAinesOsat()); // pyynnön attribuutiksi lista ainesosista RequestDispatcher dispatcher = request.getRequestDispatcher( "drinkkilista.jsp"); // ohjataan pyyntö drinkkilista.jsp-sivulle dispatcher.forward(request, response); }
/** * Järjestää drinkkilistan drinkkien nimien perusteella nousevaan tai laskevaan järjestykseen. * * <p>Jos boolean-muuttuja jarjestys on true, palautetaan lista drinkeistä nimen perusteella * laskevassa järjestyksessä ja asetetaan jarjestys = false, jolloin seuraavalla kerralla, kun * tähän metodiin tullaan, niin palautetaan lista drinkeistä nimen perusteella nousevassa * järjestyksessä, jolloin jarjestys-muuttujan arvo taas vaihtuu. * * @param request HTTP-pyyntö. */ private void jarjestaNimenMukaan(HttpServletRequest request) throws ServletException, IOException { if (request.getParameter("sortByName") != null && jarjestys) { // jos painettiin, sort-nappia, järjestetään request.setAttribute("juomat", rekisteri.getOrderedJuomat()); // juomat laskevasti jarjestys = false; } else if (request.getParameter("sortByName") != null && !jarjestys) { // jos juomat on jo järjestetty laskevasti ja painetaan request.setAttribute( "juomat", rekisteri.getJuomat()); // nappia sort, palautetaan nouseva järjestys jarjestys = true; } }
/** * Järjestää drinkkilistan drinkkien juomalajien perusteella nousevaan tai laskevaan * järjestykseen. * * <p>Jos boolean-muuttuja jarjestys on true, palautetaan lista drinkeistä juomalajin perusteella * nousevassa järjestyksessä ja asetetaan jarjestys = false, jolloin seuraavalla kerralla, kun * tähän metodiin tullaan, niin palautetaan lista drinkeistä juomalajin perusteella laskevassa * järjestyksessä, jolloin jarjestys-muuttujan arvo taas vaihtuu. * * @param request HTTP-pyyntö. */ private void jarjestaLajinMukaan(HttpServletRequest request) throws ServletException, IOException { if (request.getParameter("sortByCategory") != null && jarjestys) { // jos painettiin, sort-nappia, järjestetään request.setAttribute( "juomat", rekisteri.sortJuomatByLajitAsc()); // juomat lajin perusteella nousevasti jarjestys = false; } else if (request.getParameter("sortByCategory") != null && !jarjestys) { // jos juomat on jo järjestetty lajin mukaan nousevasti ja painetaan request.setAttribute( "juomat", rekisteri.sortJuomatByLajitDesc()); // nappia sort, järjestetään lajin mukaan laskevasti jarjestys = true; } }