franta-hg@11
|
1 |
package cz.frantovo.sql.vyuka.ajax;
|
franta-hg@11
|
2 |
|
franta-hg@11
|
3 |
import java.io.IOException;
|
franta-hg@11
|
4 |
import java.io.PrintWriter;
|
franta-hg@11
|
5 |
import javax.servlet.ServletException;
|
franta-hg@11
|
6 |
import javax.servlet.http.HttpServlet;
|
franta-hg@11
|
7 |
import javax.servlet.http.HttpServletRequest;
|
franta-hg@11
|
8 |
import javax.servlet.http.HttpServletResponse;
|
franta-hg@11
|
9 |
|
franta-hg@11
|
10 |
/**
|
franta-hg@11
|
11 |
* Servlet pro vyřizování AJAXových požadavků.
|
franta-hg@11
|
12 |
* @author fiki
|
franta-hg@11
|
13 |
*/
|
franta-hg@11
|
14 |
public class Servlet extends HttpServlet {
|
franta-hg@11
|
15 |
|
franta-hg@11
|
16 |
private static final long serialVersionUID = 9102108273105288056L;
|
franta-hg@11
|
17 |
|
franta-hg@11
|
18 |
private enum akce {
|
franta-hg@11
|
19 |
|
franta-hg@11
|
20 |
/** Provede SQL dotaz. */
|
franta-hg@11
|
21 |
vykonat,
|
franta-hg@11
|
22 |
/** Vypíše historii SQL příkazů daného uživatele. */
|
franta-hg@11
|
23 |
historie,
|
franta-hg@11
|
24 |
/** Vypíše nějaké nepotřebné informace. */
|
franta-hg@11
|
25 |
test,
|
franta-hg@11
|
26 |
/** Pokud je požadovaná akce nesmysl. */
|
franta-hg@11
|
27 |
chyba
|
franta-hg@11
|
28 |
}
|
franta-hg@11
|
29 |
|
franta-hg@11
|
30 |
/**
|
franta-hg@11
|
31 |
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
|
franta-hg@11
|
32 |
* @param request servlet request
|
franta-hg@11
|
33 |
* @param response servlet response
|
franta-hg@11
|
34 |
* @throws ServletException if a servlet-specific error occurs
|
franta-hg@11
|
35 |
* @throws IOException if an I/O error occurs
|
franta-hg@11
|
36 |
*/
|
franta-hg@11
|
37 |
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
franta-hg@11
|
38 |
|
franta-hg@11
|
39 |
/** Používáme pouze UTF-8 */
|
franta-hg@11
|
40 |
response.setContentType("text/html;charset=UTF-8");
|
franta-hg@11
|
41 |
request.setCharacterEncoding("UTF-8");
|
franta-hg@11
|
42 |
|
franta-hg@11
|
43 |
PrintWriter out = response.getWriter();
|
franta-hg@11
|
44 |
|
franta-hg@11
|
45 |
try {
|
franta-hg@11
|
46 |
|
franta-hg@11
|
47 |
akce parametrAkce = akce.chyba;
|
franta-hg@11
|
48 |
try {
|
franta-hg@11
|
49 |
parametrAkce = akce.valueOf(request.getParameter("akce"));
|
franta-hg@11
|
50 |
} catch (Exception e) {
|
franta-hg@11
|
51 |
/** Chyba nebo podvržený AJAXový požadavek → zobrazíme chybovou hlášku */
|
franta-hg@11
|
52 |
}
|
franta-hg@11
|
53 |
|
franta-hg@11
|
54 |
Ajax a = new Ajax();
|
franta-hg@11
|
55 |
|
franta-hg@11
|
56 |
|
franta-hg@11
|
57 |
switch (parametrAkce) {
|
franta-hg@11
|
58 |
case vykonat:
|
franta-hg@11
|
59 |
out.println(a.geSQLVysledek(request.getParameter("sql")));
|
franta-hg@11
|
60 |
break;
|
franta-hg@11
|
61 |
case historie:
|
franta-hg@11
|
62 |
out.println(a.geSQLVysledek(request.getRequestedSessionId()));
|
franta-hg@11
|
63 |
break;
|
franta-hg@11
|
64 |
case test:
|
franta-hg@11
|
65 |
out.println("<p>AJAX jede!</p>");
|
franta-hg@11
|
66 |
out.println("<ol>");
|
franta-hg@11
|
67 |
out.println("<li>Metoda: " + request.getMethod() + "</li>");
|
franta-hg@11
|
68 |
out.println("<li>Host: " + request.getRemoteHost() + "</li>");
|
franta-hg@11
|
69 |
out.println("<li>Adresa: " + request.getRemoteAddr() + "</li>");
|
franta-hg@11
|
70 |
out.println("<li>Akce: " + request.getParameter("akce") + "</li>");
|
franta-hg@11
|
71 |
out.println("<li>SQL: " + request.getParameter("sql") + "</li>");
|
franta-hg@11
|
72 |
out.println("<li>Sezení: " + request.getRequestedSessionId() + "</li>");
|
franta-hg@11
|
73 |
out.println("<li>URL: " + request.getRequestURL().toString() + "</li>");
|
franta-hg@11
|
74 |
out.println("</ol>");
|
franta-hg@11
|
75 |
break;
|
franta-hg@11
|
76 |
case chyba:
|
franta-hg@11
|
77 |
out.println("<p>chyba</p>");
|
franta-hg@11
|
78 |
break;
|
franta-hg@11
|
79 |
}
|
franta-hg@11
|
80 |
} finally {
|
franta-hg@11
|
81 |
out.close();
|
franta-hg@11
|
82 |
}
|
franta-hg@11
|
83 |
}
|
franta-hg@11
|
84 |
|
franta-hg@11
|
85 |
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
|
franta-hg@11
|
86 |
/**
|
franta-hg@11
|
87 |
* Handles the HTTP <code>GET</code> method.
|
franta-hg@11
|
88 |
* @param request servlet request
|
franta-hg@11
|
89 |
* @param response servlet response
|
franta-hg@11
|
90 |
* @throws ServletException if a servlet-specific error occurs
|
franta-hg@11
|
91 |
* @throws IOException if an I/O error occurs
|
franta-hg@11
|
92 |
*/
|
franta-hg@11
|
93 |
@Override
|
franta-hg@11
|
94 |
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
franta-hg@11
|
95 |
throws ServletException, IOException {
|
franta-hg@11
|
96 |
processRequest(request, response);
|
franta-hg@11
|
97 |
}
|
franta-hg@11
|
98 |
|
franta-hg@11
|
99 |
/**
|
franta-hg@11
|
100 |
* Handles the HTTP <code>POST</code> method.
|
franta-hg@11
|
101 |
* @param request servlet request
|
franta-hg@11
|
102 |
* @param response servlet response
|
franta-hg@11
|
103 |
* @throws ServletException if a servlet-specific error occurs
|
franta-hg@11
|
104 |
* @throws IOException if an I/O error occurs
|
franta-hg@11
|
105 |
*/
|
franta-hg@11
|
106 |
@Override
|
franta-hg@11
|
107 |
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
franta-hg@11
|
108 |
throws ServletException, IOException {
|
franta-hg@11
|
109 |
processRequest(request, response);
|
franta-hg@11
|
110 |
}
|
franta-hg@11
|
111 |
|
franta-hg@11
|
112 |
/**
|
franta-hg@11
|
113 |
* Returns a short description of the servlet.
|
franta-hg@11
|
114 |
* @return a String containing servlet description
|
franta-hg@11
|
115 |
*/
|
franta-hg@11
|
116 |
@Override
|
franta-hg@11
|
117 |
public String getServletInfo() {
|
franta-hg@11
|
118 |
return "Servlet pro zpracování AJAXových požadavků.";
|
franta-hg@11
|
119 |
}// </editor-fold>
|
franta-hg@11
|
120 |
}
|