Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo implementar estadísticas dinámicas en páginas jsp

Cómo implementar estadísticas dinámicas en páginas jsp

Hay dos formas de incrustar gráficos dinámicos en páginas JSP: Insertar un subprograma en páginas JSP para generar imágenes dinámicamente mediante JavaBeans.

JSP es una tecnología de diseño web muy utilizada. Es una tecnología de programación híbrida de HTML y Java script. Combina las características estáticas de HTML y las capacidades dinámicas del lenguaje Java, por lo que es muy conveniente utilizarlo para diseño web dinámico. En el procesamiento de imágenes, es muy fácil procesar imágenes estáticas, pero en aplicaciones prácticas, a menudo es necesario generar dinámicamente gráficos bidimensionales en páginas web.

Dibujo de diagrama de secuencia basado en JFreeChart. El código es el siguiente:

El método createDataset() en la instancia se utiliza para crear un objeto de recopilación de datos. El conjunto de datos del diagrama de series de tiempo es diferente de otros conjuntos de datos. Requiere agregar todos los datos dentro de un período de tiempo, generalmente usando la clase TimeSeries. En este ejemplo, el método random() de la clase Math se utiliza para la generación aleatoria.

¿Importado? java.awt.*;¿importar? Java .evento de acción awt . Java. awt. evento de escucha de acción; importar Java io. Java .io flujo de entrada de datos; importar flujo de salida de archivos Java io. Java io .io excepción; importar Java net . Java net. Conexión URL; importar formato de fecha Java. ¿Excepción de análisis de texto Java? ¿Importar texto Java? java.util.calendar; importar Java.util.date; importar Java.util.random;

importar javax.swing.jap; importar javax.swing.timer;

importar org.jfree.gráfico*; org. jfree. anotaciones de gráfico. org. jfree. eje de tabla. org.jfree.eje de categoría. org .jfree .eje de posiciones de etiqueta de categoría; org.jfree.eje del gráfico. org. jfree. gráfico del eje. org.jfree.eje.datetickunittype; org.jfree.eje del gráfico. org. jfree. gráfico etiquetas. org. jfree gráfico. org . jfree gráfico . org. jfree gráfico. org.jfree.categoría de renderizador. org . jfree . título del texto del gráfico . org. jfree categoría de datos. org. jfree. categoría de datos. conjunto de datos de categoría de intervalo;

¿Importar gráfico de eje org. org. jfree categoría de datos. org.jfree datos.gantt;importar org.

datos .gantt .serie de tareas; org. jfree datos. gantt. org .jfree datos .hora . org. jfree datos. org. jfree datos. org . jfree . data . xy . xy conjunto de datos;

La clase pública shixutu extiende JApplet {?

//PLOT_FONT es un objeto constante de fuente estática. Utilice este objeto para evitar que se creen varias veces objetos de fuente reutilizados. fuente final estática privada plot_font = new font("bold", font.italic,?18);? Gráfico JFreeChart;

//¿Crear un temporizador de extensión del generador de datos de clase de monitoreo para la actualización dinámica de datos? Implementar ActionListener {? privado estático final largo serialVersionUID =? 3977867288743720504L cuerda? Equino;? //Número de identificación del dispositivo int? totalTask//Cadena de número de tarea[][]? strTarea? //Estado de la tarea

¿Vacío público? acción realizada(ActionEvent ActionEvent){? addTotalObservation();} Generador de datos()? {?super(1000,?nulo);? addActionListener(esto);? sistema. println("súper");? } }?//¿Agregar datos actualizados al addTotalObservation() privado void en el gráfico? {?system . out . println("agregar observación total"); //Establecer un nuevo gráfico de conjunto de datos. getxyplot(). set dataset(create dataset());//¿Notificar a Jfreechart? Los datos han cambiado, ¿volver a dibujar el histograma? ¿si? (gráfico! = nulo)? { gráfico . firechart cambiado(); }?}? ¿Nulo privado? ProcessChart (gráfico JFreeChart)? {?//¿Establecer fuente del título? Gráfico.gettitle(). setfont (newfont("script oficial", fuente. Negrita,? 26));? // ¿Establecer color de fondo? chart.setBackgroundPaint(¿nuevo? color(252, 175, 134));? xy plot plot = chart . getxy plot(); // ¿Obtener las propiedades de dibujo del gráfico? plot.setdomainingridlines visible(false);//¿Configurar la cuadrícula para que no se muestre? //¿Obtener el objeto de la línea de tiempo? DateAxis eje de fecha = (eje de fecha)? trama.getdomainaxis();? eje de fecha .setlabelfont(PLOT_FONT);? // ¿Establecer la fuente de la línea de tiempo? // ¿Establecer la fuente del valor de la regla de la línea de tiempo? dateAxis.setTickLabelFont(new?Font("ì",Font.

llano, 12));? eje de fecha .setlowermargin (0.0);? // ¿Establecer el valor mínimo que se muestra en la línea de tiempo? // ¿Obtener el objeto del eje de datos? ValorAxis valorAxis =? trama.getrangeaxis();? eje de valor .setlabelfont(PLOT_FONT); //¿Establecer fuente de datos? formato de fecha formato = nuevo formato de fecha simple ("mm minutos ss segundos");? // ¿Crear un objeto con formato de fecha? // ¿Crear un objeto DateTickUnit? DateTickUnit dtu = nuevo? DateTickUnit(DateTickUnitType. 2º, 30, formato);? eje de fecha. settick unit(dtu); //Establecer la etiqueta de fecha del eje de fecha}? //Envía los resultados a un archivo.

¿Electricidad estática privada? ¿Anular writeChartAsImage (gráfico JFreeChart)? {FileOutputStream fos_jpg =? null ¿Intentar? {fos_jpg = nuevo? flujo de salida del archivo ("D:\\test\\shixutu.jpg");chart utilidades.writechartasjpeg(fos_jpg,1,chart,400,300,?null);} catch(Exception e)? {?e .printstacktrace();}¿Finalmente? {¿intentar? { fos_jpg cerrar();? } captura (excepción e)? { } } }//¿Crear objeto de recopilación de datos? ¿CreateDataset público estático XYDataset()? {?//Crear una instancia del objeto TimeSeries Serie temporal TimeSeries = ¿nuevo? series temporales("datos"); Segundos segundos = nuevo Segundo(); // Instanciar día doble d =? 50D // ¿Agregar datos durante 365 días en un año (int I = 0;i<500;i++)? {?d = d+(matemáticas. aleatorio()-0,5)* 10;? //Crear series de tiempo de datos aleatorios.segundo(día, d);? //Agregar datos al conjunto de datos segundos = (segundos)? sec . next();}? colección de series temporales colección de series temporales = nueva? TimeSeriesCollection (serie de tiempo); // Devolver objeto de recopilación de datos Devolver timeSeriesCollection} // ¿Inicialización del mini programa?

¿init público vacío()? {?// 1.? ¿Obtuviste los datos? ¿Conjunto de datos XY? Conjunto de datos =? crear conjunto de datos(); // 2.? ¿Construyendo un gráfico? ¿Gráfico=? chart factory . createtimeserieschart(? "Demostración del diagrama de series de tiempo", ///? Título del gráfico "Tiempo", ///? Eje del catálogo: la etiqueta de visualización del "valor" del eje horizontal, ///? Eje de valor: la etiqueta de visualización del conjunto de datos del eje vertical, //? Conjunto de datos falso, // Generar herramienta falsa // Generar enlace URL); // 3.? ProcessChart (gráfico) maneja el problema de visualización de gráficos chinos; // 4.? Imagen de salida del gráfico //writeChartAsImage(chart); // 5. ¿Gráfico? ¿Salida para hacer swing? //6. Usar subprograma para generar ChartPanel chartPanel = new? ChartPanel(gráfico);chartPanel.setPreferredSize(new?java.awt.Dimension(800,500));? getContentPane().

agregar (panel de gráfico);? (¿nuevo?Generador de datos()). comenzar();? }¿Vacío público? ¿Hacer un dibujo (gráfico g)? {¿si? (gráfico! = nulo)? {chart.draw((Graphics2D) g,?obtener límites());? } } destrucción pública vacía() {? }}