Ich versuche, Graphen dynamisch mit JFreeChart als Ergebnis der Checkboxen zu generieren, die der Benutzer auswählt, aber ich kann nicht herausfinden, wie man die erzeugten Datensätze am besten in Diagrammform bringt (ich habe Code, der erstellt Diagramme aus diesen, muss aber PNGs erzeugen) und in die JSP-Ansicht. Momentan kann ich nur daran denken, die Datasets an die JSP zu senden, aber ich weiß nicht, was ich von dort machen soll ... Wie mache ich das so: Benutzer übergibt Formular an Servlet, Servlet erzeugt Datasets, aus Datasets erzeugte Diagramme , PNGs aus Diagrammen und schließlich PNGs, die an JSP versandt wurden? Oder etwas in dieser Richtung.Dynamisch JFreeChart in Servlet generieren
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
String[] metrics = request.getParameterValues("metrics");
String[] fileNames = request.getParameterValues("files");
List<CategoryDataset> results = new ArrayList<CategoryDataset>();
DMCalc calculator = new DMCalc(metrics, fileNames);
calculator.calculateResults();
results.add(calculator.getEditDistanceDataset());
results.add(calculator.getSimilarityDataset());
results.add(calculator.getTimeChartDataset());
request.setAttribute("results", results);
RequestDispatcher view = request.getRequestDispatcher("metricResult.jsp");
view.forward(request, response);
}
UPDATE:
indem das doPost Verfahren die Datensätze vom Benutzer senden erzeugen, können sie dann in Feldern gespeichert werden, anschließend leitet die Request die Benutzer auf die JSP, die dann das doGet Methode des Servlets aufrufen in einem img-Tag, das die zuvor in den Feldern gespeicherten Datenmengen verwendet, um ein png zu erzeugen, und das dann durch den HTML-Code in der JSP angezeigt wird.
Klingt wie Ihre Lösung so schnell wie zwei Benutzer brechen sind Ihre Seite in der gleichen Zeit mit - Es ist nicht sicher, irgendetwas in den Feldern einer Servlet-Klasse zu speichern! –
ah, ok - gibt es eine Möglichkeit, dasselbe zu erreichen? – Robert
Die einfache Lösung ist das HttpSession-Objekt. Führen Sie HttpSession session = request.getSession(); und dann session.setAttribute ("Ergebnisse", Ergebnisse); im Formular servlet und session.getAttribute ("results") im Diagramm-Servlet. –