cff9bc95 |
1 | /* |
2 | * To change this template, choose Tools | Templates |
3 | * and open the template in the editor. |
4 | */ |
5 | package org.ufcspa.simdecs.comunicacao; |
6 | |
7 | import java.io.IOException; |
8 | import java.io.PrintWriter; |
9 | import java.io.StringWriter; |
10 | import java.util.Iterator; |
11 | import java.util.Map; |
12 | import javax.persistence.EntityManager; |
13 | import javax.servlet.ServletException; |
14 | import javax.servlet.http.HttpServlet; |
15 | import javax.servlet.http.HttpServletRequest; |
16 | import javax.servlet.http.HttpServletResponse; |
17 | import org.ufcspa.simdecs.util.DbUtil; |
18 | |
19 | /** |
20 | * |
21 | * @author maroni |
22 | */ |
23 | public abstract class BaseComunicacao extends HttpServlet { |
24 | |
e1005ea9 |
25 | protected String clear(String text) { |
26 | String cleanText = text; |
27 | |
28 | cleanText = cleanText.replaceAll("\"", """); |
29 | cleanText = cleanText.replaceAll("<", "<"); |
30 | cleanText = cleanText.replaceAll(">", ">"); |
31 | cleanText = cleanText.replaceAll("&", "&"); |
32 | cleanText = cleanText.replaceAll("'", "'"); |
33 | |
34 | return cleanText; |
35 | } |
36 | |
37 | protected String clear(Long text) { |
38 | return clear(text.toString()); |
39 | } |
40 | |
41 | protected String clear(Float text) { |
42 | return clear(text.toString()); |
43 | } |
44 | |
45 | protected String clear(Integer text) { |
46 | return clear(text.toString()); |
47 | } |
48 | |
cff9bc95 |
49 | protected static String stack2string(Exception e) { |
50 | try { |
51 | StringWriter sw = new StringWriter(); |
52 | PrintWriter pw = new PrintWriter(sw); |
53 | e.printStackTrace(pw); |
54 | return "------\r\n" + sw.toString() + "------\r\n"; |
55 | } catch (Exception e2) { |
56 | return "bad stack2string"; |
57 | } |
58 | } |
59 | |
60 | protected final void printDebug(String print) { |
61 | System.out.println(print); |
62 | } |
63 | |
64 | protected abstract void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception; |
65 | |
66 | protected void processRequest(HttpServletRequest request, HttpServletResponse response) |
67 | throws ServletException, IOException { |
68 | EntityManager em = DbUtil.getInstance().getEntityManager(); |
69 | |
70 | response.setContentType("text/html;charset=UTF-8"); |
71 | PrintWriter out = response.getWriter(); |
72 | |
73 | // Debug do Servlet |
74 | printDebug("------------------------------------------------------------------------------------"); |
75 | printDebug("METODO....: " + this.getClass()); |
76 | printDebug("PARAMETROS: "); |
77 | Map params = request.getParameterMap(); |
78 | Iterator i = params.keySet().iterator(); |
79 | |
80 | while ( i.hasNext() ) |
81 | { |
82 | String key = (String) i.next(); |
83 | String value = ((String[]) params.get( key ))[ 0 ]; |
84 | printDebug(" " + key + ": " + value); |
85 | } |
86 | printDebug("------------------------------------------------------------------------------------"); |
87 | |
88 | try { |
89 | |
90 | executaServico(em, request, response, out); |
91 | } catch(Exception e) { |
92 | out.println("<xml>" ); |
28042ed9 |
93 | out.println(" <execucao sucesso=\"nao\" />" ); |
cff9bc95 |
94 | out.println(" <erro metodo=\"" + this.getServletName() + "\">" ); |
cff9bc95 |
95 | |
96 | Map paramsError = request.getParameterMap(); |
97 | Iterator iError = paramsError.keySet().iterator(); |
25aea581 |
98 | StringBuilder parametros = new StringBuilder(); |
cff9bc95 |
99 | while ( iError.hasNext() ) |
100 | { |
101 | String key = (String) iError.next(); |
102 | String value = ((String[]) paramsError.get( key ))[ 0 ]; |
25aea581 |
103 | parametros.append(";"); |
104 | parametros.append(key); |
105 | parametros.append(":"); |
106 | parametros.append(value); |
cff9bc95 |
107 | } |
25aea581 |
108 | out.println(" <parametros descricao=\"" + parametros.substring(1) + "\" />"); |
109 | out.println(" <mensagem erro=\"" + stack2string(e) + "\" />"); |
cff9bc95 |
110 | out.println(" </erro>" ); |
111 | out.println("</xml>" ); |
733f8ea6 |
112 | |
113 | e.printStackTrace(); |
cff9bc95 |
114 | } finally { |
115 | out.close(); |
116 | } |
117 | } |
118 | |
119 | // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> |
120 | /** |
121 | * Handles the HTTP |
122 | * <code>GET</code> method. |
123 | * |
124 | * @param request servlet request |
125 | * @param response servlet response |
126 | * @throws ServletException if a servlet-specific error occurs |
127 | * @throws IOException if an I/O error occurs |
128 | */ |
129 | @Override |
130 | protected void doGet(HttpServletRequest request, HttpServletResponse response) |
131 | throws ServletException, IOException { |
132 | processRequest(request, response); |
133 | } |
134 | |
135 | /** |
136 | * Handles the HTTP |
137 | * <code>POST</code> method. |
138 | * |
139 | * @param request servlet request |
140 | * @param response servlet response |
141 | * @throws ServletException if a servlet-specific error occurs |
142 | * @throws IOException if an I/O error occurs |
143 | */ |
144 | @Override |
145 | protected void doPost(HttpServletRequest request, HttpServletResponse response) |
146 | throws ServletException, IOException { |
147 | processRequest(request, response); |
148 | } |
149 | |
150 | /** |
151 | * Returns a short description of the servlet. |
152 | * |
153 | * @return a String containing servlet description |
154 | */ |
155 | @Override |
156 | public String getServletInfo() { |
157 | return "Short description"; |
158 | }// </editor-fold> |
159 | } |