1 22 package kelp.webapp.presentation; 23 24 import org.w3c.dom.Node ; 26 import org.w3c.dom.html.HTMLElement; 27 28 import javax.servlet.ServletException ; 30 import javax.servlet.ServletOutputStream ; 31 import javax.servlet.http.HttpServlet ; 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 35 import java.io.BufferedReader ; 37 import java.io.ByteArrayInputStream ; 38 import java.io.IOException ; 39 import java.io.File ; 40 import java.io.FileInputStream ; 41 import java.io.InputStreamReader ; 42 43 49 public class NewNodeServlet extends HttpServlet { 50 public void doGet(HttpServletRequest request, 51 HttpServletResponse response) throws ServletException , 52 IOException { 53 NewNodeHTML page = null; 54 ServletOutputStream out; 55 byte[] buffer; 56 57 page = createPage(); 58 buffer = page.toDocument().getBytes(); 59 response.setContentType( "text/html" ); 60 response.setContentLength( buffer.length ); 61 out = response.getOutputStream(); 62 out.write(buffer); 63 out.flush(); 64 response.flushBuffer(); 65 } 66 67 public NewNodeHTML createPage() { 68 NewNodeHTML page = null; 69 HTMLElement element = null; 70 Node newNode = null; 71 String fileContent = null; 72 73 page = new NewNodeHTML(); 74 fileContent = readFile(); 75 newNode = page.createCDATASection(fileContent); 76 element = page.getElementSpanInsertHere(); 77 element.getParentNode().replaceChild(newNode, element); 78 return page; 79 } 80 81 private String readFile() { 82 File nodeFile = null; 83 FileInputStream fileStream = null; 84 InputStreamReader inReader = null; 85 BufferedReader buffer = null; 86 ByteArrayInputStream byteIn = null; 87 String inLine = null; 88 StringBuffer outBuf = new StringBuffer (); 89 StringBuffer pathBuf = new StringBuffer (); 90 91 pathBuf.append(getInitParameter("testDataPath")); 92 if (pathBuf.length() == 0) { 93 outBuf.append("<p>init-parm not found: testDataPath</p>"); 94 } else { 95 96 int lastAt = -1; 98 99 lastAt = pathBuf.length() - 1; 100 if (pathBuf.charAt(lastAt) == '"') { 101 pathBuf.deleteCharAt(lastAt); 102 } 103 if (pathBuf.charAt(0) == '"') { 104 pathBuf.deleteCharAt(0); 105 } 106 pathBuf.append('/'); 107 pathBuf.append("newnode.txt"); 108 try { 109 nodeFile = new File (pathBuf.toString()); 110 fileStream = new FileInputStream (nodeFile); 111 inReader = new InputStreamReader (fileStream); 112 buffer = new BufferedReader (inReader); 113 inLine = new String (); 114 while (inLine != null) { 115 inLine = buffer.readLine(); 116 if (inLine != null) { 117 outBuf.append(inLine); 118 } 119 } 120 buffer.close(); 121 inReader.close(); 122 fileStream.close(); 123 } catch (IOException e) { 124 outBuf.append(e.getMessage()); 125 } 126 } 127 return outBuf.toString(); 128 } 129 130 } 131 | Popular Tags |