package isip.java.bullyse.bullydb; import java.io.*; import java.util.*; import java.text.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class History extends HttpServlet { // Create a new BullyDB Object static BullyDB sessionbase = new BullyDB(); static String SystemName = sessionbase.getName(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Initialize variables String task = request.getParameter("Task"); if (task == null) { // Invalid use } else if (task.equals("getData")) { // Outputs in html the info needed for the ticker displayData(request, response); } else if (task.equals("getName")) { // Initialize the output stream response.setContentType("text/html"); PrintWriter out=response.getWriter(); out.println(SystemName); out.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Invalid access method } public void displayData(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String query = (String)null; String Symbol = request.getParameter("Symbol"); String Type = request.getParameter("Type"); String Last = (String)null; ResultSet result = null; int newU = 0; int Shares = 0; double Value = 0.00; java.util.Date transTime = new java.util.Date(); java.util.Date curTime = new java.util.Date(); java.util.Date curDate = new java.util.Date(); String td = (String)null; int hour = 0; int curhour = 0; int curmin = 0; int minute = 0; Locale locale = new Locale("en","US"); DateFormat timeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale); DecimalFormat tFormat = new DecimalFormat("00"); // Initialize the output stream response.setContentType("text/html"); PrintWriter out=response.getWriter(); if (Type.equals("1")) { // An initial value has to be output. Since the day plot doesn't // necessarily have anything in it, select the last value from // the companies Extended History Table. // query = "select Value, Date from eht" + Symbol.toLowerCase() + " order by Date"; result = sessionbase.doQuery(query); try { result.next(); out.println(result.getString("Value")); } catch (Exception e) { e.printStackTrace(); } query = "select * from ht" + Symbol.toLowerCase() + " order by Dtime"; result = sessionbase.doQuery(query); try { while (result.next()) { out.println(result.getDouble("TradeAt")); out.println(result.getTimestamp("Dtime")); } } catch (Exception e) { e.printStackTrace(); } } else if (Type.equals("2")) { int day = curTime.getDate(); int month = curTime.getMonth(); int year = curTime.getYear(); curTime = new java.util.Date(year, month, (day-7), 0, 0, 0); Timestamp Now = new Timestamp(curTime.getTime()); // An initial value is expected. Not used in this case, but // since the program reads it in, print out the first value // twice. int Val = 0; query = "select Value, Date from eht" + Symbol.toLowerCase() + " where Date >= '" + Now + "' order by Date"; result = sessionbase.doQuery(query); try { while (result.next()) { out.println(result.getString("Value")); if (Val == 0) { out.println(result.getString("Value")); Val++; } out.println(result.getTimestamp("Date")); } } catch (Exception e) { e.printStackTrace(); } } else if (Type.equals("3")) { int day = curTime.getDate(); int month = curTime.getMonth(); int year = curTime.getYear(); curTime = new java.util.Date(year, month, (day-12), 0, 0, 0); Timestamp Now = new Timestamp(curTime.getTime()); // An initial value is expected. Not used in this case, but // since the program reads it in, print out the first value // twice. int Val = 0; query = "select Value, Date from eht" + Symbol.toLowerCase() + " where Date >= '" + Now + "' order by Date"; result = sessionbase.doQuery(query); try { while (result.next()) { out.println(result.getString("Value")); if (Val == 0) { out.println(result.getString("Value")); Val++; } out.println(result.getTimestamp("Date")); } } catch (Exception e) { e.printStackTrace(); } } else if (Type.equals("4")) { int day = curTime.getDate(); int month = curTime.getMonth(); int year = curTime.getYear(); curTime = new java.util.Date(year, month, (day-364), 0, 0, 0); Timestamp Now = new Timestamp(curTime.getTime()); // An initial value is expected. Not used in this case, but // since the program reads it in, print out the first value // twice. int Val = 0; query = "select Value, Date from eht" + Symbol.toLowerCase() + " where Date >= '" + Now + "' order by Date"; result = sessionbase.doQuery(query); try { while (result.next()) { out.println(result.getString("Value")); if (Val == 0) { out.println(result.getString("Value")); Val++; } out.println(result.getTimestamp("Date")); } } catch (Exception e) { e.printStackTrace(); } } out.close(); } }