KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > kelp > webapp > presentation > NewNodeServlet


1 /*
2  * Enhydra Java Application Server Project
3  *
4  * The contents of this file are subject to the Enhydra Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License on
7  * the Enhydra web site ( http://www.enhydra.org/ ).
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
11  * the License for the specific terms governing rights and limitations
12  * under the License.
13  *
14  * The Initial Developer of the Enhydra Application Server is Lutris
15  * Technologies, Inc. The Enhydra Application Server and portions created
16  * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
17  * All Rights Reserved.
18  *
19  * Contributor(s):
20  *
21  */

22 package kelp.webapp.presentation;
23
24 // Xerces imports
25
import org.w3c.dom.Node JavaDoc;
26 import org.w3c.dom.html.HTMLElement;
27
28 // Servlet imports
29
import javax.servlet.ServletException JavaDoc;
30 import javax.servlet.ServletOutputStream JavaDoc;
31 import javax.servlet.http.HttpServlet JavaDoc;
32 import javax.servlet.http.HttpServletRequest JavaDoc;
33 import javax.servlet.http.HttpServletResponse JavaDoc;
34
35 // Standard imports
36
import java.io.BufferedReader JavaDoc;
37 import java.io.ByteArrayInputStream JavaDoc;
38 import java.io.IOException JavaDoc;
39 import java.io.File JavaDoc;
40 import java.io.FileInputStream JavaDoc;
41 import java.io.InputStreamReader JavaDoc;
42
43 /**
44  * <p>
45  * This presentation object dynamically creates an HTML page
46  * showing the greeting from the application configuration file.
47  * </p>
48  */

49 public class NewNodeServlet extends HttpServlet JavaDoc {
50     public void doGet(HttpServletRequest JavaDoc request,
51                       HttpServletResponse JavaDoc response) throws ServletException JavaDoc,
52                       IOException JavaDoc {
53         NewNodeHTML page = null;
54         ServletOutputStream JavaDoc 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 JavaDoc newNode = null;
71         String JavaDoc 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 JavaDoc readFile() {
82         File JavaDoc nodeFile = null;
83         FileInputStream JavaDoc fileStream = null;
84         InputStreamReader JavaDoc inReader = null;
85         BufferedReader JavaDoc buffer = null;
86         ByteArrayInputStream JavaDoc byteIn = null;
87         String JavaDoc inLine = null;
88         StringBuffer JavaDoc outBuf = new StringBuffer JavaDoc();
89         StringBuffer JavaDoc pathBuf = new StringBuffer JavaDoc();
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             // Remove quotes
97
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 JavaDoc(pathBuf.toString());
110                 fileStream = new FileInputStream JavaDoc(nodeFile);
111                 inReader = new InputStreamReader JavaDoc(fileStream);
112                 buffer = new BufferedReader JavaDoc(inReader);
113                 inLine = new String JavaDoc();
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 JavaDoc e) {
124                 outBuf.append(e.getMessage());
125             }
126         }
127         return outBuf.toString();
128     }
129
130 }
131
Popular Tags