package cz.frantovo.sql.vyuka.ajax; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet pro vyřizování AJAXových požadavků. * @author fiki */ public class Servlet extends HttpServlet { private static final long serialVersionUID = 9102108273105288056L; private enum akce { /** Provede SQL dotaz. */ vykonat, /** Vypíše historii SQL příkazů daného uživatele. */ historie, /** Vypíše nějaké nepotřebné informace. */ test, /** Pokud je požadovaná akce nesmysl. */ chyba } /** * Processes requests for both HTTP GET and POST methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** Používáme pouze UTF-8 */ response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); try { akce parametrAkce = akce.chyba; try { parametrAkce = akce.valueOf(request.getParameter("akce")); } catch (Exception e) { /** Chyba nebo podvržený AJAXový požadavek → zobrazíme chybovou hlášku */ } Ajax a = new Ajax(); switch (parametrAkce) { case vykonat: out.println(a.geSQLVysledek(request.getParameter("sql"))); break; case historie: out.println(a.geSQLVysledek(request.getRequestedSessionId())); break; case test: out.println("

AJAX jede!

"); out.println("
    "); out.println("
  1. Metoda: " + request.getMethod() + "
  2. "); out.println("
  3. Host: " + request.getRemoteHost() + "
  4. "); out.println("
  5. Adresa: " + request.getRemoteAddr() + "
  6. "); out.println("
  7. Akce: " + request.getParameter("akce") + "
  8. "); out.println("
  9. SQL: " + request.getParameter("sql") + "
  10. "); out.println("
  11. Sezení: " + request.getRequestedSessionId() + "
  12. "); out.println("
  13. URL: " + request.getRequestURL().toString() + "
  14. "); out.println("
"); break; case chyba: out.println("

chyba

"); break; } } finally { out.close(); } } // /** * Handles the HTTP GET method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP POST method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * @return a String containing servlet description */ @Override public String getServletInfo() { return "Servlet pro zpracování AJAXových požadavků."; }// }