1 22 package kelp.webapp.presentation; 23 24 import org.w3c.dom.html.HTMLInputElement; 26 27 import javax.servlet.ServletException ; 29 import javax.servlet.ServletOutputStream ; 30 import javax.servlet.http.HttpServlet ; 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 import javax.servlet.http.HttpSession ; 34 35 import java.io.IOException ; 37 import java.io.File ; 38 import java.io.FileInputStream ; 39 import java.io.FileOutputStream ; 40 import java.util.Properties ; 41 42 48 public class FormServlet extends HttpServlet { 49 public void doPost(HttpServletRequest request, 50 HttpServletResponse response) throws ServletException , 51 IOException { 52 doGet(request, response); 53 } 54 55 public void doGet(HttpServletRequest request, 56 HttpServletResponse response) throws ServletException , 57 IOException { 58 FormHTML page = null; 59 ServletOutputStream out; 60 Properties data = null; 61 byte[] buffer; 62 63 data = initData(request, data); 64 data = saveParameters(request, data); 65 page = createPage(data); 66 buffer = page.toDocument().getBytes(); 67 response.setContentType("text/html"); 68 response.setContentLength(buffer.length); 69 out = response.getOutputStream(); 70 out.write(buffer); 71 out.flush(); 72 response.flushBuffer(); 73 } 74 75 private Properties saveParameters(HttpServletRequest request, 76 Properties data) { 77 String paramFirst = null; 78 String paramLast = null; 79 80 try { 81 paramFirst = request.getParameter("first"); 82 paramLast = request.getParameter("last"); 83 } catch (Exception e) { 84 paramFirst = null; 85 paramLast = null; 86 } 87 if (paramFirst != null && paramLast != null) { 88 data.put("first", paramFirst); 89 data.put("last", paramLast); 90 writePropertyFile(data); 91 } 92 return data; 93 } 94 95 public FormHTML createPage(Properties data) { 96 String first = null; 97 String last = null; 98 HTMLInputElement inputFirst = null; 99 HTMLInputElement inputLast = null; 100 FormHTML page = null; 101 102 page = new FormHTML(); 103 first = (String ) data.get("first"); 104 last = (String ) data.get("last"); 105 inputFirst = page.getElementFirst(); 106 inputLast = page.getElementLast(); 107 inputFirst.setValue(first); 108 inputLast.setValue(last); 109 return page; 110 } 111 112 private void writePropertyFile(Properties data) { 113 FileOutputStream out = null; 114 String dataPath = null; 115 116 dataPath = getDataPath(); 117 try { 118 out = new FileOutputStream (dataPath, false); 119 data.store(out, "Data for Form page"); 120 out.close(); 121 } catch (java.io.IOException e) { 122 e.printStackTrace(); 123 } 124 } 125 126 private Properties readPropertyFile(Properties data) { 127 FileInputStream is = null; 128 String dataPath = null; 129 130 dataPath = getDataPath(); 131 try { 132 is = new FileInputStream (dataPath); 133 data = new Properties (); 134 data.load(is); 135 is.close(); 136 } catch (Exception e) { 137 138 e.printStackTrace(); 140 data = new Properties (); 141 data.put("first", "Luke"); 142 data.put("last", "Skywalker"); 143 } 144 return data; 145 } 146 147 private Properties initData(HttpServletRequest request, Properties data) { 148 HttpSession session = null; 149 150 session = request.getSession(true); 151 152 if (session != null) { 153 data = (Properties ) session.getAttribute("data"); 154 } 155 if (data == null) { 156 data = readPropertyFile(data); 157 } 158 return data; 159 } 160 161 private String getDataPath() { 162 StringBuffer pathBuf = new StringBuffer (); 163 String testPath = getInitParameter("testDataPath"); 164 165 if (testPath == null) { 166 System.out.println("init-parm not found: testDataPath"); 167 } else { 168 pathBuf.append(testPath); 169 170 int lastAt = -1; 172 173 lastAt = pathBuf.length() - 1; 174 if (pathBuf.charAt(lastAt) == '"') { 175 pathBuf.deleteCharAt(lastAt); 176 } 177 if (pathBuf.charAt(0) == '"') { 178 pathBuf.deleteCharAt(0); 179 } 180 pathBuf.append('/'); 181 pathBuf.append("form.properties"); 182 } 183 return pathBuf.toString(); 184 } 185 186 } 187 | Popular Tags |