javajsp图表,Java生成图表
更新:2022-11-20 15:18
本文目录一览:
- 用jsp怎样生成柱状图,饼状图,折线图
- java+jsp如何实现Uv、pv统计?框架是基于SpringMVC+hibernate实现的。
- 用java在jsp中显示图片,求例子代码
- 如何在JSP网页中生成动态图表
- [Java jsp中根据从数据库中查询出来的路径显示图片](#Java jsp中根据从数据库中查询出来的路径显示图片)
- 怎样用JAVA来实现在网页中制作柱状图
用jsp怎样生成柱状图,饼状图,折线图
JFreeChart 可以绘制饼状图、折线图、柱状图等。awt/swing里可以使用,JSP里也可以使用。 JFreeChart是 Java平台下开源的图表类库,是一个完全基于Java的图表开发技术。 支持的图表类型也比较丰富,比如饼图、柱状图、散点图、仪表盘、甘特图等多种图表,还可以生成Web图形报表。JFreeChart可导出PNG和JPEG格式的文件。 例如下面的柱状图:
java+jsp如何实现Uv、pv统计?框架是基于SpringMVC+hibernate实现的。
SpringMVC与Spring结合Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。
- 再次配置web.xml Spring要在程序调用某个对象的时候,就要首先把这个对象的实例注入进去。Spring自己对实例、程序运行的管理构成了Spring自己的容器,第一步就是要在web.xml中注册初始化这个容器。在此之前我们先在/resources文件夹下,创建子路径META-INF,然后在这个文件夹下,创建我们后面要用到的applicationContext.xml文件,如果用过spring框架的人对这个文件都不会陌生,这是spring的配置文件。最后web.xml文件如下:
metadata-complete="true" version="3.0"
spring-dispatcherorg.springframework软件定制开发公司?web.servlet.DispatcherServlet
spring-dispatcher/contextConfigLocationclasspath:/META-INF/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
- 配置applicationContext.xml文件 在spring4之后,spring配置的bean不是在xml文件中配置了,而是采用固定扫描annotation的类,根据对象的类型或者名字自动加载,但此前提是我们仍然要在配置文件中配置好这些类所在包的路径。最后applicationContext.xml文件如下,
- 创建一个Service类,UserService.java Service的创建我们还是比较推荐具体的service实现相应的接口的方式,下面我们写一个服务类,用来获取注册的用户,在包com.mark.java.service下创建接口UserService。
public interface UserService {
public List getAllUsernames();
}
然后再创建一个UserServiceImpl来实现此接口,
@Service
public class UserServiceImpl implements UserService {
public List getAllUsernames() {
List users = new ArrayList();
users.add("MarK");
users.add("Ken");
users.add("Fowafolo");
return users;
}
}
注意!!!,我们要对个实现加上注释@Service
,这是在告诉spring,我需要你来管理我。
用java在jsp中显示图片,求例子代码
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page import="javax.imageio.ImageIO"%>
<%@ page import="java.io.File"%>
<%
out.clear();
response.setContentType("image/png");
BufferedImage image = ImageIO.read(new File("D:\\mark.png"));
ImageIO.write(image, "png", response.getOutputStream());
%>
我这样写没有问题,你试试。我来解释一下楼上的疑问,html标签不可能引用到本地的文件,比如C:\xx.jpg你指定的路径得是web目录下的,动态生成图片一般用servlet实现,比如验证码之类的。
如何在JSP网页中生成动态图表
JSP页面中嵌入动态图表的两种方法:在JSP页面中插入Applet小程序;通过JavaBean动态生成图像。
JSP是一种广泛应用的网页设计技术,它是一种HTML和Java脚本混合的编程技术,它结合了HTML的静态特性和Java语言的动态能力,因此用它进行动态网页设计非常方便。在进行图像处理时,一般处理静态图片非常容易,但是,在实际应用中常常需要动态地在网页中生成二维的图形。
基于JFreeChart开发的一个时序图的绘制。代码如下:
实例中createDataset()
方法用于创建数据集合对象。时序图的数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries
类进行添加。该实例中通过Math
类的random()
方法进行随机生成。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import javax.swing.JApplet;
import javax.swing.Timer;
import org.jfree.chart.*;
import org.jfree.chart.annotations.CategoryTextAnnotation;
import org.jfree.chart.axis.CategoryAnchor;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.axis.DateTickUnitType;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.Day;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
public class shixutu extends JApplet {
private static final Font PLOT_FONT = new Font("黑体", Font.ITALIC, 18);
JFreeChart chart;
class DataGenerator extends Timer implements ActionListener {
private static final long serialVersionUID = 3977867288743720504L;
String equID; //设备ID号
int totalTask; //任务数
String[][] strTask; //任务情况
public void actionPerformed(ActionEvent actionevent) {
addTotalObservation();
}
DataGenerator() {
super(1000, null);
addActionListener(this);
System.out.println("super");
}
}
private void addTotalObservation() {
System.out.println("addTotalObservation");
chart.getXYPlot().setDataset(createDataset());
if (chart != null) {
chart.fireChartChanged();
}
}
private static void processChart(JFreeChart chart) {
chart.getTitle().setFont(new Font("隶书", Font.BOLD, 26));
chart.setBackgroundPaint(new Color(252,175,134));
XYPlot plot = chart.getXYPlot();
plot.setDomainGridlinesVisible(false);
DateAxis dateAxis = (DateAxis) plot.getDomainAxis();
dateAxis.setLabelFont(PLOT_FONT);
dateAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
dateAxis.setLowerMargin(0.0);
ValueAxis valueAxis = plot.getRangeAxis();
valueAxis.setLabelFont(PLOT_FONT);
DateFormat format = new SimpleDateFormat("mm分ss秒");
DateTickUnit dtu = new DateTickUnit(DateTickUnitType.SECOND,30,format);
dateAxis.setTickUnit(dtu);
}
private static void writeChartAsImage(JFreeChart chart) {
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\test\\shixutu.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300, null);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos_jpg.close();
} catch (Exception e) {
}
}
}
public static XYDataset createDataset() {
TimeSeries timeseries = new TimeSeries("Data");
Second second = new Second();
double d = 50D;
for (int i = 0; i < 500; i++) {
d = d + (Math.random() - 0.5) * 10;
timeseries.add(second, d);
second = (Second) second.next();
}
TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(timeseries);
return timeSeriesCollection;
}
public void init() {
XYDataset dataset = createDataset();
chart = ChartFactory.createTimeSeriesChart(
"时序图示范", // 图表标题
"时间", // 目录轴的显示标签--横轴
"数值", // 数值轴的显示标签--纵轴
dataset, // 数据集
false,
false, // 是否生成工具
false // 是否生成URL链接
);
processChart(chart);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800,500));
getContentPane().add(chartPanel);
(new DataGenerator()).start();
}
public void paint(Graphics g) {
if (chart != null) {
chart.draw((Graphics2D) g, getBounds());
}
}
public void destroy() {
}
}
Java jsp中根据从数据库中查询出来的路径显示图片
JSP是靠加载图片路径来显示图片的,图片可以保存在项目中,也可以保存到磁盘的某个路径下。 图片放webroot下,一般是webroot下建一个img或pic 文件夹专门存图。 JSP使用的时候:
<img src="<%=request.getContextPath()%>/pic/mypic.gif"/>
这样就可以加载到图片了。
怎样用JAVA来实现在网页中制作柱状图
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。 JFreeChart的主页地址为: 在这里可以找到最新版本的JFreeChart的相关信息,如说明文档、下载连接以及示例图表等。 JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。 IBM文档: Javaeye社区: