+ try {
+ out = response.getOutputStream();
+ server.apply(infile, out, keySeq, props);
+ out.close();
+ } catch (TransformerConfigurationException tce) {
+ sendError(response, out, exc_out("stylesheet error", tce), "");
+ } catch (Exception ee) {
+ sendError(response, out, exc_out(null, ee), "");
+ }
+ return;
+ }
+ if (cmd.equals("/remove")) {
+ final String key = request.getParameter("keys");
+ final String [] data = split(key, ",");
+ html_open(response, out);
+ for (int i = 0; i < data.length; i++) {
+ if (data[i] == null) {
+ out.println(msg_out("removing all keys"));
+ server.removeAll();
+ } else {
+ out.println(msg_out("removing key "+data[i]));
+ server.remove(data[i]);
+ }
+ }
+ html_close(out); return;
+ }
+ if (cmd.equals("/list")) {
+ html_open(response, out);
+ out.println("<p>stylesheet list:</p><ul>");
+
+ Iterator i = server.list().iterator();
+ while (i.hasNext())
+ out.println("<li>"+i.next()+"</li>");
+ out.println("</ul>"); html_close(out); return;
+ }
+ if (cmd.equals("/reload")) {
+ final String key = request.getParameter("keys");
+ final String [] data = split(key, ",");
+ html_open(response, out);
+ for (int i = 0; i < data.length; i++) {
+ try {
+ if (data[i] == null) {
+ out.println(msg_out("reloading all keys"));
+ server.reloadAll();
+ } else {
+ out.println(msg_out("reloading key "+data[i]));
+ server.reload(data[i]);
+ }
+ } catch (TransformerConfigurationException tce) {
+ out.println(exc_out("stylesheet error", tce));
+ } catch (Exception e) {
+ out.println(exc_out(null, e));
+ }
+ }
+ html_close(out); return;
+ }
+ if (cmd.equals("/update")) {
+ final String key = request.getParameter("keys");
+ final String [] data = split(key, ",");
+ html_open(response, out);
+ for (int i = 0; i < data.length; i++) {
+ try {
+ if (data[i] == null) {
+ out.println(msg_out("updating all keys"));
+ server.updateAll();
+ } else {
+ out.println(msg_out("updating key "+data[i]));
+ server.update(data[i]);
+ }
+ } catch (TransformerConfigurationException tce) {
+ out.println(exc_out("stylesheet error", tce));
+ } catch (Exception e) {
+ out.println(exc_out(null, e));
+ }
+ }
+ html_close(out); return;
+ }
+ if (cmd.equals("/help")) {
+ html_open(response, out);
+ out.println("<h2>"+server.PACKAGE+" servlet - version "+server.VERSION+"</h1>");
+ out.println("<b>compiled "+server.DATE+" at "+server.TIME.substring(0,2)+":"+server.TIME.substring(2)+"</b>");
+ out.println("<p>usage:</p>"+help+"</body></html>");
+ html_close(out); return;
+ }
+ sendError(response, out, "unknown command", help); return;
+ } catch (Exception e) {
+ sendError(response, out, exc_out(null, e),""); // FG: non dovrebbe servire mai
+ return;
+ }
+ }