<%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="java.text.DateFormat" %> <%@ page import="java.text.SimpleDateFormat" %> <%! private static final String[] htmlCode = new String[256]; static { for (int i = 0; i < 10; i++) { htmlCode[i] = "�" + i + ";"; } for (int i = 10; i < 32; i++) { htmlCode[i] = "�" + i + ";"; } for (int i = 32; i < 128; i++) { htmlCode[i] = String.valueOf((char)i); } // Special characters htmlCode['&'] = "&"; // ampersand htmlCode['<'] = "<"; // lower than htmlCode['>'] = ">"; // greater than htmlCode['"'] = """; // quote htmlCode['\''] = "'"; // quote for (int i = 128; i < 256; i++) { htmlCode[i] = "&#" + i + ";"; } } public String htmlEncode(String inputString){ int len = inputString.length(); char c; StringBuffer outputBuffer = new StringBuffer(); for (int i = 0; i < len; i++) { c = inputString.charAt(i); // the Htmlcode of these characters are added to a StringBuffer one by one try { outputBuffer.append(htmlCode[c]); } catch(ArrayIndexOutOfBoundsException aioobe) { outputBuffer.append(c); } } return outputBuffer.toString(); } %> <% //error table to store errors Map errorTable = new Hashtable(); Boolean error = Boolean.FALSE; String salutation = ((request.getParameter("salutation")==null)?"":request.getParameter("salutation")); String lastName = ((request.getParameter("lastName")==null)?"":request.getParameter("lastName")); String firstName = ((request.getParameter("firstName")==null)?"":request.getParameter("firstName")); String middleInitial = ((request.getParameter("middleInitial")==null)?"":request.getParameter("middleInitial")); String email = ((request.getParameter("email")==null)?"":request.getParameter("email")); String email2 = ((request.getParameter("email2")==null)?"":request.getParameter("email2")); String firmName = ((request.getParameter("firmName")==null)?"":request.getParameter("firmName")); String streetAddress = ((request.getParameter("streetAddress")==null)?"":request.getParameter("streetAddress")); String city = ((request.getParameter("city")==null)?"":request.getParameter("city")); String stateProvince = ((request.getParameter("stateProvince")==null)?"":request.getParameter("stateProvince")); String stateProvince2 = ((request.getParameter("stateProvince2")==null)?"":request.getParameter("stateProvince2")); String country = ((request.getParameter("country")==null)?"":request.getParameter("country")); String zipCode = ((request.getParameter("zipCode")==null)?"":request.getParameter("zipCode")); String telephone = ((request.getParameter("telephone")==null)?"":request.getParameter("telephone")); String fax = ((request.getParameter("fax")==null)?"":request.getParameter("fax")); String affil_tc1600 = ((request.getParameter("affil_tc1600")==null)?"":request.getParameter("affil_tc1600")); String affil_tc1700 = ((request.getParameter("affil_tc1700")==null)?"":request.getParameter("affil_tc1700")); String affil_tc2100 = ((request.getParameter("affil_tc2100")==null)?"":request.getParameter("affil_tc2100")); String affil_tc2600 = ((request.getParameter("affil_tc2600")==null)?"":request.getParameter("affil_tc2600")); String affil_tc2800 = ((request.getParameter("affil_tc2800")==null)?"":request.getParameter("affil_tc2800")); String affil_tc2900 = ((request.getParameter("affil_tc2900")==null)?"":request.getParameter("affil_tc2900")); String affil_tc3600 = ((request.getParameter("affil_tc3600")==null)?"":request.getParameter("affil_tc3600")); String affil_tc3700 = ((request.getParameter("affil_tc3700")==null)?"":request.getParameter("affil_tc3700")); String affil_tm = ((request.getParameter("affil_tm")==null)?"":request.getParameter("affil_tm")); String frequency = ((request.getParameter("frequency")==null)?"":request.getParameter("frequency")); String attorneyNumber = ((request.getParameter("attorneyNumber")==null)?"":request.getParameter("attorneyNumber")); String customerNumber = ((request.getParameter("customerNumber")==null)?"":request.getParameter("customerNumber")); String subscribe = ((request.getParameter("subscribe")==null)?"":request.getParameter("subscribe")); String geoRegion = (stateProvince.equals("")?stateProvince2:stateProvince); boolean subscribing = subscribe.equalsIgnoreCase("subscribe"); boolean unsubscribing = subscribe.equalsIgnoreCase("unsubscribe"); String action = (subscribing?"subscribe":"unsubscribe"); Date now = new java.util.Date(); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.DEFAULT); DateFormat oracleFormat = new SimpleDateFormat("yyyy/MM/dd:hh:mm:ssa"); long currentDateTime = System.currentTimeMillis(); now.setTime(currentDateTime); String timeStamp = oracleFormat.format(now); //df.format(now); //validate required field if ( lastName==null || lastName.trim().equals("") ) { errorTable.put("lastName", "missing"); error = Boolean.TRUE; } if (email==null || email.trim().equals("")) { errorTable.put("email", "missing"); error = Boolean.TRUE; } else if (email.indexOf("@")==-1 || email.indexOf(".")==-1){ //validate email errorTable.put("email", "invalid"); error = Boolean.TRUE; } if (email2==null || email2.trim().equals("")) { errorTable.put("email2", "missing"); error = Boolean.TRUE; } else if (email2.indexOf("@")==-1 || email2.indexOf(".")==-1){ //validate email errorTable.put("email2", "invalid"); error = Boolean.TRUE; } if (email!=null && !email.trim().equals("") && email2!=null && !email2.trim().equals("")) { if ( !email.equalsIgnoreCase(email2) ) { errorTable.put("email", "unmatched"); errorTable.put("email2", "unmatched"); error = Boolean.TRUE; } } if ( subscribing && (streetAddress==null || streetAddress.trim().equals("")) ) { errorTable.put("streetAddress", "missing"); error = Boolean.TRUE; } if ( subscribing && (city==null || city.trim().equals("")) ) { errorTable.put("city", "missing"); error = Boolean.TRUE; } if ( subscribing && (telephone==null || telephone.trim().equals("")) ) { errorTable.put("telephone", "missing"); error = Boolean.TRUE; } if ( subscribing && (zipCode==null || zipCode.trim().equals("")) ) { errorTable.put("zipCode", "missing"); error = Boolean.TRUE; } if ( subscribing && !customerNumber.trim().equals("") && customerNumber!=null ) { try { if (Integer.parseInt(customerNumber)<=0) { errorTable.put("customerNumber", "notNumber"); error = Boolean.TRUE; } } catch (NumberFormatException nfe){ errorTable.put("customerNumber", "notNumber"); error = Boolean.TRUE; } } if ( subscribing && !attorneyNumber.trim().equals("") && attorneyNumber!=null ) { try { if (Integer.parseInt(attorneyNumber)<=0) { errorTable.put("attorneyNumber", "notNumber"); error = Boolean.TRUE; } } catch (NumberFormatException nfe){ errorTable.put("attorneyNumber", "notNumber"); error = Boolean.TRUE; } } //add errorTable to session request.setAttribute("errorTable", errorTable); request.setAttribute("error", error); if (!error.booleanValue()) { StringBuffer fileName = new StringBuffer(); //Add path UNIX String pathName = "/web/htdocs/ecrs/data_files/"; //String pathName = "c:\\ecrs\\data"; if (subscribing) { fileName.append("s_"); } else { fileName.append("u_"); } String tempEmail = email.substring(0, email.indexOf("@")).toLowerCase(); boolean none = true; String good = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; for ( int i = 0; i < tempEmail.length(); i++ ) { if ( good.indexOf(tempEmail.charAt(i)) >= 0 ) { fileName.append(tempEmail.charAt(i)); } } //use system time to generate a unique identifier long currentTime = System.currentTimeMillis(); fileName.append("_").append(currentTime).append(".xml"); File outputFile = new File(pathName, fileName.toString()); FileWriter fw = new FileWriter(outputFile); try { fw.write(""); fw.write(""); fw.write(""+htmlEncode(salutation)+""); fw.write(""+htmlEncode(lastName)+""); fw.write(""+htmlEncode(firstName)+""); fw.write(""+htmlEncode(middleInitial)+""); fw.write(""+htmlEncode(email)+""); fw.write(""+htmlEncode(firmName)+""); fw.write(""+htmlEncode(streetAddress)+""); fw.write(""+htmlEncode(city)+""); fw.write(""+htmlEncode(geoRegion)+""); fw.write(""+htmlEncode(country)+""); fw.write(""+htmlEncode(zipCode)+""); fw.write(""+htmlEncode(telephone)+""); fw.write(""+htmlEncode(fax)+""); fw.write(""); fw.write(""+htmlEncode(affil_tc1600)+""); fw.write(""+htmlEncode(affil_tc1700)+""); fw.write(""+htmlEncode(affil_tc2100)+""); fw.write(""+htmlEncode(affil_tc2600)+""); fw.write(""+htmlEncode(affil_tc2800)+""); fw.write(""+htmlEncode(affil_tc2900)+""); fw.write(""+htmlEncode(affil_tc3600)+""); fw.write(""+htmlEncode(affil_tc3700)+""); fw.write(""+htmlEncode(affil_tm)+""); fw.write(""); fw.write(""+htmlEncode(frequency)+""); fw.write(""+htmlEncode(attorneyNumber)+""); fw.write(""+htmlEncode(customerNumber)+""); fw.write(""+htmlEncode(timeStamp)+""); fw.write(""+htmlEncode(action)+""); fw.write(""); } catch (Exception e) { out.write("There has been an error. Please try again."); } finally { fw.close(); } session.invalidate(); response.sendRedirect(response.encodeRedirectUrl("registrationThankyou.jsp")); //out.println("thank you"); } else { session.setAttribute("errorTable", errorTable); session.setAttribute("error", error); session.setAttribute("salutation", salutation); session.setAttribute("lastName", lastName); session.setAttribute("firstName", firstName); session.setAttribute("middleInitial", middleInitial); session.setAttribute("email", email); session.setAttribute("email2", email2); session.setAttribute("firmName", firmName); session.setAttribute("streetAddress", streetAddress); session.setAttribute("city", city); session.setAttribute("country", country); session.setAttribute("stateProvince", stateProvince); session.setAttribute("stateProvince2", stateProvince2); session.setAttribute("zipCode", zipCode); session.setAttribute("telephone", telephone); session.setAttribute("fax", fax); session.setAttribute("affil_tc1600", affil_tc1600); session.setAttribute("affil_tc1700", affil_tc1700); session.setAttribute("affil_tc2100", affil_tc2100); session.setAttribute("affil_tc2600", affil_tc2600); session.setAttribute("affil_tc2800", affil_tc2800); session.setAttribute("affil_tc2900", affil_tc2900); session.setAttribute("affil_tc3600", affil_tc3600); session.setAttribute("affil_tc3700", affil_tc3700); session.setAttribute("affil_tm", affil_tm); session.setAttribute("frequency", frequency); session.setAttribute("attorneyNumber", attorneyNumber); session.setAttribute("customerNumber", customerNumber); response.sendRedirect( response.encodeRedirectUrl("registrationForm.jsp?error=true") ); } %>