本文目錄一覽:
- 1、用jsp怎樣生成柱狀圖,餅狀圖,折線圖
- 2、java+jsp如何實現Uv、pv統計?框架是基於SpringMVC+hibernate實現的。
- 3、用java在jsp中顯示圖片,求例子代碼
- 4、如何在JSP網頁中生成動態圖表
- 5、Java jsp中根據從數據庫中查詢出來的路徑顯示圖片
- 6、怎樣用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開發框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的複雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許使用者選擇使用哪一個組件,同時為J2EE應用程序開發提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。Spring的核心是控制反轉(IoC)和面向切面(AOP)。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式)輕量級開源框架。1.再次配置web.xmlSpring要在程序調用某個對象的時候,就要首先把這個對象的實例注入進去。Spring自己對實例、程序運行的管理構成了Spring自己的容器,第一步就是要在web.xml中註冊初始化這個容器。在此之前我們先在/resources文件夾下,創建子路徑META-INF,然後在這個文件夾下,創建我們後面要用到的applicationContext.xml文件,如果用過spring框架的人對這個文件都不會陌生,這是spring的配置文件。最後web.xml文件如下:metadata-complete=”true”version=”3.0″spring-dispatcherorg.springframework軟件定製開發公司?web.servlet.DispatcherServletspring-dispatcher/contextConfigLocationclasspath:/META-INF/applicationContext.xmlorg.springframework.web.context.ContextLoaderListener2.配置applicationContext.xml文件在spring4之後,spring配置的bean不是在xml文件中配置了,而是採用固定掃描annotation的類,根據對象的類型或者名字自動加載,但此前提是我們仍然要在配置文件中配置好這些類所在包的路徑。最後applicationContext.xml文件如下,3.創建一個Service類,UserService.javaService的創建我們還是比較推薦具體的service實現相應的接口的方式,下面我們寫一個服務類,用來獲取註冊的用戶,在包com.mark.java.service下創建接口UserService。publicinterfaceUserService{publicListgetAllUsernames();}然後再創建一個UserServiceImpl來實現此接口,@ServicepublicclassUserServiceImplimplementsUserService{publicListgetAllUsernames(){Listusers=newArrayList();users.add(“MarK”);users.add(“Ken”);users.add(“Fowafolo”);returnusers;}}注意!!!,我們要對個實現加上注釋@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 {
//PLOT_FONT是一靜態的字體常量對象,使用此對象可以避免反覆用到的字體對象被多次創建
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”);
}
}
//將更新的數據添加到chart中
private void addTotalObservation()
{
System.out.println(“addTotalObservation”);
//設置新的數據集
chart.getXYPlot().setDataset(createDataset());
//通知Jfreechart
數據發生了改變,重新繪製柱狀圖
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對象
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 timeseries = new
TimeSeries(“Data”);
Second second = new Second();
//實例化Day
double d =
50D;
//添加一年365天的數據
for (int i = 0; i 500; i++)
{
d = d + (Math.random() – 0.5) * 10;
//創建隨機數據
timeseries.second(day, d);
//向數據集合中添加數據
second = (Second)
second.next();
}
TimeSeriesCollection timeSeriesCollection =
new
TimeSeriesCollection(timeseries);
//返回數據集合對象
return timeSeriesCollection; } //Applet程序初始化
public void init()
{
// 1.
得到數據
XYDataset dataset =
createDataset();
// 2.
構造chart
chart =
ChartFactory.createTimeSeriesChart(
“時序圖示範”, //
圖表標題
“時間”, //
目錄軸的顯示標籤–橫軸
“數值”, //
數值軸的顯示標籤–縱軸
dataset, //
數據集
false,
false, //
是否生成工具
false //
是否生成URL鏈接
);
// 3.
處理chart中文顯示問題
processChart(chart);
// 4.
chart輸出圖片
//writeChartAsImage(chart);
// 5. chart
以swing形式輸出
//6.使用applet輸出
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社區:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/181681.html