package cz.frantovo.sql.vyuka.ajax;
import cz.frantovo.sql.vyuka.dto.Uzivatel;
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,
/** Nápověda – průvodce */
napoveda,
/** 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();
Uzivatel uzivatel = new Uzivatel(request.getRequestedSessionId(), request.getRemoteHost());
switch (parametrAkce) {
case vykonat:
out.println(a.geSQLVysledek(request.getParameter("sql"), uzivatel));
break;
case historie:
out.println(a.getHistorie(uzivatel));
break;
case napoveda:
out.println("
Nápověda bude…
"); break; case test: out.println("AJAX jede!
"); out.println("chyba
"); break; } } finally { out.close(); } } //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ů.";
}//