@Override
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        if (kirjaudutaankoUlos(request)) {
            kirjauduUlos(request, response);
        } else if (onkoKirjautunut(request, response)) {
            try {
                if (Varaus.haeAjatAsiakasIdlla(getKayttaja().getId()).isEmpty()) {
                    request.setAttribute("varauksenTila", "Sinulla ei ole ajanvarauksia.");
                } else {
                    if (napinPainallus("peruaika", request)) {
                        int id = haePeruttavanAjanId(request);
                        Varaus.peruAika(id);
                        Oirekuvaus.poistaOirekuvaus(id);
                        request.setAttribute("varauksenTila", "Varaus peruttu onnistuneesti.");
                    }
                    try {
                        List<Varaus> ajat = Varaus.haeAjatAsiakasIdlla(getKayttaja().getId());
                        List<Oirekuvaus> oirekuvaukset = new ArrayList<Oirekuvaus>();
                        for (Varaus v : ajat) {
                            Oirekuvaus o = Oirekuvaus.haeOirekuvausVarausIdlla(v.getId());
                            oirekuvaukset.add(o);
                        }
                        haeVaraustieto(request);
                        muunnaPaivamaaratSuomalaisiksi(request, ajat);
                        request.setAttribute("varaukset", ajat);
                        request.setAttribute("oirekuvaukset", oirekuvaukset);
                    } catch (Exception e) {
                        naytaVirheSivu("Varausten hakeminen epäonnistui.", request, response);
                    }
                }
            } catch (NamingException e) {

            } catch (SQLException e) {
            }
            avaaSivunakyma(request, response, "omatvaraukset", "viikkoaikataulu", "hoito-ohjeet", "web/omatVaraukset.jsp");
        }
    }