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