root/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java @ 74:48066e753dd6

Revision 74:48066e753dd6, 3.5 KB (checked in by František Kučera <franta-hg@…>, 14 years ago)

Vlastní (stručné) chybové hlášky (404 a 500), IP adresa pro reverzní proxy (provizorně).

Line 
1package cz.frantovo.sql.vyuka.web;
2
3import cz.frantovo.sql.vyuka.dao.HistorieDAO;
4import cz.frantovo.sql.vyuka.dao.PiskovisteDAO;
5import cz.frantovo.sql.vyuka.dao.PruvodceDAO;
6import cz.frantovo.sql.vyuka.dto.Pruvodce;
7import cz.frantovo.sql.vyuka.dto.Uzivatel;
8import cz.frantovo.sql.vyuka.dto.VysledekSQL;
9
10/**
11 * Webová beana, která poskytuje data Ajaxovému JSPčku.
12 * @author fiki
13 */
14public class Ajax {
15
16    private final Uzivatel uzivatel = new Uzivatel();
17    private String sqlPrikaz;
18    private long idPruvodce;
19    private String kodPruvodce;
20
21    /**
22     * Nastaví informace o klientovi (uživateli).
23     * @param ipAdresa IP adresa, ze které přišel HTTP požadavek
24     * @param ipPresmerovano HTTP hlavička x-forwarded-for (přidává proxy).
25     * @param idSezeni javovská HTTP relace
26     */
27    public void setKlient(String ipAdresa, String ipPresmerovano, String idSezeni) {
28        if (("127.0.0.1".equals(ipAdresa) || "10.0.0.31".equals(ipAdresa)) && ipPresmerovano != null) {
29            uzivatel.setIpAdresa(ipPresmerovano);
30        } else {
31            uzivatel.setIpAdresa(ipAdresa);
32        }
33        uzivatel.setIdSezeni(idSezeni);
34    }
35
36    public void setSqlPrikaz(String sqlPrikaz) {
37        this.sqlPrikaz = sqlPrikaz;
38    }
39
40    public void setIdPruvodce(long idPruvodce) {
41        this.idPruvodce = idPruvodce;
42    }
43
44    public void setKodPruvodce(String kodPruvodce) {
45        this.kodPruvodce = kodPruvodce;
46    }
47
48    /**
49     * @return Historie SQL příkazů daného uživatele.
50     */
51    public VysledekSQL getHistorie() {
52        HistorieDAO h = new HistorieDAO();
53        return h.nactiHistorii(uzivatel);
54    }
55
56    /**
57     * Vykoná zadaný SQL příkaz v databázi.
58     * @return Výsledek dotazu – tabulka, hláška nebo chyba.
59     */
60    public VysledekSQL getSQLVysledek() {
61        PiskovisteDAO p = new PiskovisteDAO();
62        return p.vykonejSQL(sqlPrikaz, uzivatel);
63    }
64
65    /**
66     * Načte stránku průvodce – podle ID.
67     * @return průvodce nebo chybová hláška.
68     */
69    public Pruvodce getPruvodcePodleId() {
70        PruvodceDAO dao = new PruvodceDAO();
71        Pruvodce p = dao.getPruvodce(idPruvodce);
72        return osetriChybuPruvodce(p);
73    }
74
75    /**
76     * Načte stránku průvodce – podle kódu.
77     * @param kod kód průvodce, kterého hledáme.
78     * @return průvodce nebo chybová hláška.
79     */
80    public Pruvodce getPruvodcePodleKodu() {
81        PruvodceDAO dao = new PruvodceDAO();
82        Pruvodce p = dao.getPruvodce(kodPruvodce);
83        return osetriChybuPruvodce(p);
84    }
85
86    /**
87     * Načte stránku průvodce.
88     * idPruvodce = id, ke kterému hledáme předchozí stránku (záznam před).
89     * @return průvodce nebo chybová hláška.
90     */
91    public Pruvodce getPruvodcePredchozi() {
92        PruvodceDAO dao = new PruvodceDAO();
93        Pruvodce p = dao.getPruvodcePredchozi(idPruvodce);
94        return osetriChybuPruvodce(p);
95    }
96
97    /**
98     * Načte stránku průvodce.
99     * idPruvodce = id, ke kterému hledáme následující stránku (záznam po).
100     * @return průvodce nebo chybová hláška.
101     */
102    public Pruvodce getPruvodceNasledujici() {
103        PruvodceDAO dao = new PruvodceDAO();
104        Pruvodce p = dao.getPruvodceNasledujici(idPruvodce);
105        return osetriChybuPruvodce(p);
106    }
107
108    /**
109     * @param p Stránka průvodce načtená z databáze.
110     * @return zadaná stránka, nebo chybová hláška, pokud bylo načteno „null“
111     */
112    private static Pruvodce osetriChybuPruvodce(Pruvodce p) {
113        if (p == null) {
114            p = new Pruvodce();
115            p.setKod("chyba");
116            p.setNadpis("pruvodce.chyba.nadpis");
117            p.setObsah("pruvodce.chyba.obsah");
118            p.setLokalizovat(true);
119        }
120        return p;
121    }
122}
Note: See TracBrowser for help on using the browser.