1 package gnu.kawa.servlet; 2 import gnu.text.*; 3 import gnu.mapping.*; 4 import gnu.expr.*; 5 6 import java.io.IOException ; 7 import java.io.PrintWriter ; 8 9 import javax.servlet.*; 10 import javax.servlet.http.*; 11 12 14 15 public class ReplServlet extends HttpServlet 16 { 17 public void init(ServletConfig config) throws ServletException 18 { 19 } 20 21 public void doPost(HttpServletRequest request, 22 HttpServletResponse response) 23 throws java.io.IOException 24 { 25 String command = request.getParameter("command"); 26 HttpSession hsession = request.getSession(true); 27 ReplSession rsession = (ReplSession) hsession.getValue("repl"); 28 if (rsession == null) 29 { 30 rsession = new ReplSession(); 31 hsession.putValue("repl", rsession); 32 } 33 34 PrintWriter out = response.getWriter(); 35 String requestURI = request.getRequestURI(); 36 StringBuffer resultBuffer = new StringBuffer (); 37 resultBuffer.append("<?xml version=\"1.0\"?>\n"); 38 resultBuffer.append("<result xmlns=\"http://www.w3.org/1999/xhtml\">"); 39 java.io.BufferedReader in = request.getReader(); 40 StringBuffer sbuf = new StringBuffer (); 41 for (;;) 42 { 43 int ch = in.read(); 44 if (ch < 0) 45 break; 46 sbuf.append((char) ch); 47 } 48 String inputData = sbuf.toString(); 49 if ("line".equals(command)) 50 rsession.appendInputLine(inputData); 51 else if ("action".equals(command)) 52 rsession.appendInput(inputData); 53 String result = rsession.waitOutput(); 54 resultBuffer.append(result); 55 resultBuffer.append("</result>"); 56 57 response.setContentType("text/xml"); 58 response.setHeader("Pragma", "no-cache"); 59 response.setHeader("Expires", "0"); 60 response.setHeader("Cache-Control", "no-store"); 61 62 out.print(resultBuffer.toString()); 63 out.close(); 64 } 65 } 66 | Popular Tags |