java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java
author František Kučera <franta-hg@frantovo.cz>
Wed Jan 27 21:24:33 2010 +0100 (2010-01-27)
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ě).
     1 package cz.frantovo.sql.vyuka.web;
     2 
     3 import cz.frantovo.sql.vyuka.dao.HistorieDAO;
     4 import cz.frantovo.sql.vyuka.dao.PiskovisteDAO;
     5 import cz.frantovo.sql.vyuka.dao.PruvodceDAO;
     6 import cz.frantovo.sql.vyuka.dto.Pruvodce;
     7 import cz.frantovo.sql.vyuka.dto.Uzivatel;
     8 import cz.frantovo.sql.vyuka.dto.VysledekSQL;
     9 
    10 /**
    11  * Webová beana, která poskytuje data Ajaxovému JSPčku.
    12  * @author fiki
    13  */
    14 public 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 }