root/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/ajax/Servlet.java @ 12:1b10a6565e8c

Revision 12:1b10a6565e8c, 4.3 KB (checked in by František Kučera <franta-hg@…>, 15 years ago)

Propojení javascriptu a servletu.

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