(no commit message)
[simdecs2.git] / src / java / org / ufcspa / simdecs / comunicacao / BaseComunicacao.java
CommitLineData
cff9bc95 1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package org.ufcspa.simdecs.comunicacao;
6
7import java.io.IOException;
8import java.io.PrintWriter;
9import java.io.StringWriter;
10import java.util.Iterator;
11import java.util.Map;
12import javax.persistence.EntityManager;
13import javax.servlet.ServletException;
14import javax.servlet.http.HttpServlet;
15import javax.servlet.http.HttpServletRequest;
16import javax.servlet.http.HttpServletResponse;
17import org.ufcspa.simdecs.util.DbUtil;
18
19/**
20 *
21 * @author maroni
22 */
23public 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("<", "&lt;");
30 cleanText = cleanText.replaceAll(">", "&gt;");
31 cleanText = cleanText.replaceAll("&", "&amp;");
32 cleanText = cleanText.replaceAll("'", "&apos;");
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}