package servlets; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import DAOs.FingerprintDAO; import beans.PredictionBean; import beans.CharacteristicsBean; import beans.HistoryListBean; import beans.UniquenessBean; import datastructures.Fingerprint; import util.SampleIDs; import util.browserPrediction.Predictor; /** * Servlet implementation class HistoryServlet */ public class ViewSampleServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ViewSampleServlet() { super(); // Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Get SampleSetID. String sampleSetID = SampleIDs.getSampleSetID(request, getServletContext()); // Set SampleIDs associated with that SampleSetID. HistoryListBean history = FingerprintDAO.getSampleSetIDsHistory(sampleSetID, getServletContext()); request.setAttribute("historyListBean", history); String action = request.getParameter("action"); /* * Get SampleUUID1 and the source of the UUID. */ String sampleUUID1 = null; { String inputType = request.getParameter("source1"); if(inputType == null){ /* * TODO: Handle JavaScript submit. * TODO: set input type (history / UUID). */ //throw new ServletException("Not implemented yet."); } else if(inputType.equals("history")){ sampleUUID1 = request.getParameter("UUID1history"); request.setAttribute("source1", "history"); } else if(inputType.equals("UUID")){ sampleUUID1 = request.getParameter("UUID1UUID"); request.setAttribute("source1", "UUID"); } else{ throw new ServletException("Unknown inputType1."); } if(sampleUUID1 != null){ sampleUUID1 = sampleUUID1.trim(); } request.setAttribute("sampleUUID1", sampleUUID1); } if (action == null || action.equals("View")) { if (sampleUUID1 != null && !sampleUUID1.equals("")) { // Get the data associated with the SampleID. CharacteristicsBean chrsbean = new CharacteristicsBean(); UniquenessBean uniquenessbean = new UniquenessBean(); PredictionBean predictionBean; Fingerprint fingerprint; try { fingerprint = FingerprintDAO.getFingerprintBeans(sampleUUID1, chrsbean, uniquenessbean); predictionBean = Predictor.getPredictionBean(fingerprint); } catch (Exception e) { throw new ServletException(e); } if (fingerprint != null) { request.setAttribute("chrsBean1", chrsbean); request.setAttribute("uniquenessBean1", uniquenessbean); request.setAttribute("predictionBean1", predictionBean); } else { throw new ServletException("No sample associated with given sampleUUID1: " + sampleUUID1); } // Forward to the history display page. request.getRequestDispatcher("/WEB-INF/viewSampleDisplay.jsp").forward(request, response); return; } else { request.setAttribute("cookiesEnabled", (request.getCookies() != null)); // Forward to the history page. request.getRequestDispatcher("/WEB-INF/viewSample.jsp").forward(request, response); return; } } else if(action.equals("Compare")){ String sampleUUID2 = null; { String inputType = request.getParameter("source2"); if(inputType == null){ /* * TODO: Handle JavaScript submit. * TODO: set input type (history / UUID). */ request.setAttribute("errorMessage", "Not implemented yet."); throw new ServletException("Not implemented yet."); } else if(inputType.equals("history")){ sampleUUID2 = request.getParameter("UUID2history"); request.setAttribute("source2", "history"); } else if(inputType.equals("UUID")){ sampleUUID2 = request.getParameter("UUID2UUID"); request.setAttribute("source2", "UUID"); } else{ throw new ServletException("Unknown inputType2."); } if(sampleUUID2 != null){ sampleUUID2 = sampleUUID2.trim(); } request.setAttribute("sampleUUID2", sampleUUID2); } // Were the SampleUUIDs specified? if (sampleUUID1 != null && !sampleUUID1.equals("")) { // Get the data associated with the SampleUUID1. CharacteristicsBean chrsbean1 = new CharacteristicsBean(); UniquenessBean uniquenessbean1 = new UniquenessBean(); PredictionBean predictionBean1; Fingerprint fingerprint1; try { fingerprint1 = FingerprintDAO.getFingerprintBeans(sampleUUID1, chrsbean1, uniquenessbean1); predictionBean1 = Predictor.getPredictionBean(fingerprint1); } catch (Exception e) { throw new ServletException(e); } if (fingerprint1 != null) { request.setAttribute("chrsBean1", chrsbean1); request.setAttribute("uniquenessBean1", uniquenessbean1); request.setAttribute("predictionBean1", predictionBean1); } else { throw new ServletException("No sample associated with given sampleUUID1: " + sampleUUID1); } if(sampleUUID2 != null && !sampleUUID2.equals("")){ // Get the data associated with the SampleUUID2. CharacteristicsBean chrsbean2 = new CharacteristicsBean(); UniquenessBean uniquenessbean2 = new UniquenessBean(); PredictionBean predictionBean2; Fingerprint fingerprint2; try { fingerprint2 = FingerprintDAO.getFingerprintBeans(sampleUUID2, chrsbean2, uniquenessbean2); predictionBean2 = Predictor.getPredictionBean(fingerprint2); } catch (Exception e) { throw new ServletException(e); } if (fingerprint2 != null) { request.setAttribute("chrsBean2", chrsbean2); request.setAttribute("uniquenessBean2", uniquenessbean2); request.setAttribute("predictionBean2", predictionBean2); } else { throw new ServletException("No sample associated with given sampleUUID2: " + sampleUUID2); } request.setAttribute("compare", true); } request.getRequestDispatcher("/WEB-INF/viewSampleDisplay.jsp").forward(request, response); return; } else { request.setAttribute("errorMessage", "Both sampleUUID1 and sampleUUID2 must be specified during a compare."); throw new ServletException("sampleUUID1 or sampleUUID2 not specified in a compare."); } } else{ throw new ServletException("Unknown action."); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }