# HG changeset patch # User František Kučera # Date 1243784771 -7200 # Node ID dceaaefb19464672bfba30b0ad75cadcdd3d75e6 # Parent 6bbbd371e8131ef7f1179a65693e75e09750b15f Přechod ze servletu na JSP – přidání JSPX. diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java Sun May 31 17:46:11 2009 +0200 @@ -57,7 +57,7 @@ Ajax a = new Ajax(); - Uzivatel uzivatel = new Uzivatel(request.getRequestedSessionId(), request.getRemoteHost()); + Uzivatel uzivatel = new Uzivatel(request.getRequestedSessionId(), request.getRemoteAddr()); switch (parametrAkce) { case vykonat: diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/HistorieDAO.java Sun May 31 17:46:11 2009 +0200 @@ -60,7 +60,8 @@ Tabulka t = new Tabulka(); String[] zahlavi = {"Kdy", "SQL příkaz"}; t.setZahlavi(zahlavi); - + /** TODO: lokalizace */ + t.setZahlaviTip("TODO: Překlad"); Connection db = getSpojeni(DATABAZE.APLIKACE); if (db == null) { diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Hlaska.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Hlaska.java Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Hlaska.java Sun May 31 17:46:11 2009 +0200 @@ -10,7 +10,7 @@ private String text; private Typ typ; - private boolean escapovat; + private boolean escapovat = true; /** * SQL hláška diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java Sun May 31 17:46:11 2009 +0200 @@ -11,6 +11,7 @@ public class Tabulka implements HtmlObjekt { private String[] zahlavi; + private String zahlaviTip; private Collection hodnoty = new ArrayList(); public String getHtml() { @@ -67,6 +68,14 @@ this.zahlavi = zahlavi; } + public String getZahlaviTip() { + return zahlaviTip; + } + + public void setZahlaviTip(String zahlaviTip) { + this.zahlaviTip = zahlaviTip; + } + public Collection getHodnoty() { return hodnoty; } diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Uzivatel.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Uzivatel.java Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Uzivatel.java Sun May 31 17:46:11 2009 +0200 @@ -14,6 +14,9 @@ this.ipAdresa = ipAdresa; } + public Uzivatel() { + } + public String getIdSezeni() { return idSezeni; } diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Sun May 31 17:46:11 2009 +0200 @@ -18,6 +18,11 @@ js.probihaSQL=Prob\u00EDh\u00E1 zpracov\u00E1n\u00ED SQL p\u0159\u00EDkazu\u2026 js.probihaHistorie=Na\u010D\u00EDt\u00E1 se historie\u2026 -licence.program=Program je vyd\u00E1n pod licenc\u00ED: +licence.program=Program je vyd\u00E1n pod licenc\u00ED: licence.agpl=GNU Affero GPL -licence.zdrojaky=Zdrojov\u00E9 k\u00F3dy ke sta\u017Een\u00ED: +licence.zdrojaky=Zdrojov\u00E9 k\u00F3dy ke sta\u017Een\u00ED: + +vysledek.razeniTip=Chce\u0161 set\u0159\u00EDdit v\u00FDsledek podle n\u011Bjak\u00E9ho sloupce? Co takhle ORDER BY sloupec. +historie.kdy=Kdy +historie.prikaz=SQL p\u0159\u00EDkaz +historie.zahlaviTip=Posledn\u00ED proveden\u00E9 SQL p\u0159\u00EDkazy. diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java Sun May 31 17:46:11 2009 +0200 @@ -0,0 +1,52 @@ +package cz.frantovo.sql.vyuka.web; + +import cz.frantovo.sql.vyuka.dao.HistorieDAO; +import cz.frantovo.sql.vyuka.dao.PiskovisteDAO; +import cz.frantovo.sql.vyuka.dto.Uzivatel; +import cz.frantovo.sql.vyuka.dto.VysledekSQL; + +/** + * Webová beana, která poskytuje data Ajaxovému JSPčku. + * @author fiki + */ +public class Ajax { + + private final Uzivatel uzivatel = new Uzivatel(); + private String sqlPrikaz; + + /** + * Nastaví informace o klientovi (uživateli). + * @param ipAdresa IP adresa, ze které přišel HTTP požadavek + * @param ipPresmerovano HTTP hlavička x-forwarded-for + * @param idSezeni javovská HTTP relace + */ + public void setKlient(String ipAdresa, String ipPresmerovano, String idSezeni) { + if ("127.0.0.1".equals(ipAdresa) && ipPresmerovano != null) { + uzivatel.setIpAdresa(ipPresmerovano); + } else { + uzivatel.setIpAdresa(ipAdresa); + } + uzivatel.setIdSezeni(idSezeni); + } + + public void setSqlPrikaz(String sqlPrikaz) { + this.sqlPrikaz = sqlPrikaz; + } + + /** + * @return Historie SQL příkazů daného uživatele. + */ + public VysledekSQL getHistorie() { + HistorieDAO h = new HistorieDAO(); + return h.nactiHistorii(uzivatel); + } + + /** + * Vykoná zadaný SQL příkaz v databázi. + * @return Výsledek dotazu – tabulka, hláška nebo chyba. + */ + public VysledekSQL getSQLVysledek() { + PiskovisteDAO p = new PiskovisteDAO(); + return p.vykonejSQL(sqlPrikaz, uzivatel); + } +} diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/web/ajax.jspx --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/web/ajax.jspx Sun May 31 17:46:11 2009 +0200 @@ -0,0 +1,63 @@ + + + + + + + + request.setCharacterEncoding("UTF-8"); + ajax.setKlient(request.getRemoteAddr(), request.getHeader("x-forwarded-for"), request.getRequestedSessionId()); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

+ +

+
+
+ + + +

TODO: nápověda.

+
+
+
diff -r 6bbbd371e813 -r dceaaefb1946 java/sql-vyuka/web/hlavni.js --- a/java/sql-vyuka/web/hlavni.js Sat May 30 22:54:44 2009 +0200 +++ b/java/sql-vyuka/web/hlavni.js Sun May 31 17:46:11 2009 +0200 @@ -54,7 +54,7 @@ function ajaxVykonatSQL() { if (ajax.readyState == 4 || ajax.readyState == 0) { zobraz(document.lokalizace.probihaSQL.value, stavovePole); - ajax.open("POST", 'ajax?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true); + ajax.open("POST", 'ajax.jspx?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true); ajax.onreadystatechange = function() { if (ajax.readyState == 4) { zobraz(ajax.responseText, vystupniPole); @@ -70,7 +70,7 @@ function ajaxZobrazitHistorii() { if (ajax.readyState == 4 || ajax.readyState == 0) { zobraz(document.lokalizace.probihaHistorie.value, stavovePole); - ajax.open("POST", 'ajax?akce=historie', true); + ajax.open("POST", 'ajax.jspx?akce=historie', true); ajax.onreadystatechange = function() { if (ajax.readyState == 4) { zobraz(ajax.responseText, vystupniPole);