导航:首页 > 编程语言 > jsp做动图

jsp做动图

发布时间:2023-05-23 02:16:22

1. 如何在jsP网页中生成动态图表

  1. JSP页面中嵌入动态图表的两种方法 :在JSP页面中插入Applet小程序 ;通过javaBean动态生成图像。

  2. JSP是一种广泛应用的网页设计技术 ,它是一种HTML和Java脚本混合的编程技术 ,它结合了HTML的静态特性和Java语言的动态能力 ,因此用它进行动态网页设计非常方便。在进行图像处理时 ,一般处理静态图片非常容易 ,但是 ,在实际应用中常常需要动态地在网页中生成二维的图形.

  3. 基于JFreeChart开发的一个时序图的绘制。代码如下:

  4. 实例中createDataset()方法用于创建数据集合对象。时序图的数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries类进行添加。该实例中通过Math类的random()方法进行随机生成。

  5. 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.;
    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 {


  6. //PLOT_FONT是一静态的字体常量对象,使用此对象可以避免反复用到的字体对象被多次创建

    private static final Font PLOT_FONT = new Font("黑体", Font.ITALIC ,
    18);
    JFreeChart chart;

  7. //创建数据动态更新的监听
    class DataGenerator extends Timer
    implements ActionListener {

    private static final long serialVersionUID =
    3977867288743720504L;
    String
    equID;
    //设备ID号
    int
    totalTask;
    //任务数
    String[][]
    strTask;
    //任务情况

  8. 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);
    //设置日期轴的日期标签 } //将结果输出在文件

  9. 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程序初始化

  10. 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() {
    }
    }

2. 如何在JSP中发送一个动态图像

要 为你的jsp页面设置MIME类型,你需要设置页面的contentType属性: %@ page co 当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要 为毕仔悉你的jsp页面设置MIME类型,你需要设置页面的contentType属性: <%@ page contentType=image/jpeg % 然后你需要创建一个BufferedImage绘制你的动态图像: BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB); 创建完一个BufferedImage后,你需要得到图形环境进行绘制,一个Graphics或者Graphics2D对象: Graphics g = image.getGraphics(); // or Graphics2d g2d = image.createGraphics(); 从现在起你就可以绘制图像内容了。对图形环境绘制就会画到BufferedImage.最开始这个图像都是黑色的,因此用你希望的背景颜手乎色戚拆填充图像是一个不错的主意,然后,当你完成图像的绘制,你需要dispose图形环境: g.dispose(); // or g2d.dispose(); 一旦完成图像的绘制,你在response中返回那个图像。你可以使用非标准的com.sun.image.codec.jpeg包中的 JPEGImageEncoder类编码图像,或者如果你使用JDK1.4,你可以使用标准的ImageIO类。在使用JPEGImageEncoder 时有一个技巧,你必须从ServletResponse取来ServletOutputStream而不能使用隐含的JSP输出变量out. ServletOutputStream sos = response.getOutputStream(); JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(sos); encoder.encode(image); // or ImageIO.write(image, JPEG, out); 这里有一个从所有的可能方案中(例如g.dispose();或者g2d.dispose();)选取的一个完整的范例。这个例子使用Graphics对 象绘制一个随机的多边形,图像通过JPEGImageEncoder绘制,你可以自由设置多边形的顶点数得到更复杂的形状,换言之,有更多顶点和边。

3. 怎么用JSP制作动态网页,需要安装什么软件

一、什么是ASP?

ASP是Active Server Pages的简称,它是一种在微软公司的WEB服务器IIS(Internet Infomation Server)上开发交互网页的新技术。微软公司最初在IIS3.0版上使用它以取代CGI。随着Windows NT在WWW上的使用日益增多,ASP已经成为了开发动态网站、构筑Internet和Intranet应用的最佳选择。

二、在哪里可以找到支持ASP的服务器软件?

如果你的计算机上装的是Windows NT 4.0,那么你可以通过安装NT的可选包Windows NT Option Pack 4.0来安装IIS4.0,然后你就可以在IIS4.0里使用ASP了。如果你的操作系统是Windows 98, 那么你可以在Win98光盘里找到一个ADD-ONS目录,下面的PWS目录里面有一个小型WWW服务器软件PWS(PersonalWeb Server),它也可以支持ASP。如果你想用一用Windows 2000的测试版,那么你可以选装Server版或者Advanced Server版,它们都已经自带IIS5.0了。

三、如何编写ASP?

你或许用过Javascript在网页里弹出一个小窗口,你是这样做的:
<html>
<head>
<title>New Page 1
</head>
<body>
<Script Language=〃JavaScript〃>
alert(〃hello!〃);
</Script>
</body>
</html>
编写ASP就跟它差不多,同样是在网页文件里加些东西,不像CGI那样你还得写一个EXE文件。唯一应该注意的是,网页文件应该以.asp作为后缀名,而不能是.htm,这样WWW服务器才能识别它是ASP文件并进行相应的处理。
注意,上面例子中使用了 <script>和</script> 来把脚本包括起来,以区别普通的Html标记。在ASP中,使用另外两个符号来标记ASP代码,它们是“<%” 和“%>”。WWW服务器在处理ASP文件时,一看到$#@60;%就知道ASP的代码开始了,而看到%>就知道代码结束。
通常,我们可以用Notepad来编辑ASP文件,不过因为FrontPage98有强大的网页管理功能,所以最好在Frontpage98里编写ASP文件。当你要往一个网页里插入ASP代码时,只需选择FrontPage Editor下部的“HTML”标签页就行了。

四、一个例子

最后让我们来看一个例子,将它以a.asp存盘,它在浏览器里输出三个“Hello ASP”,从这里我们可以体会ASP代码是如何同HTML标记语言结合在一起的。
<html>
<head>
<title>New Page 1
</head>
<body>
<%For i=1 to 3%>
<font size=〃><%=i%>〃Hello ASP
<%Next%>
</body>
</html>
请注意,文件后缀一定要为.asp。

五、ASP的处理流程

当我们用浏览器查看一个ASP文件时,都发生了些什么呢?
以上面那个a.asp为例,当我们在浏览器里输入 http://localhost/a.asp(localhost为主机名),浏览器向WWW服务器发出请求,要求返回a.asp的内容。WWW服务器在接到请求后,发现它的后缀为.asp,于是就将这个文件交给专门的ASP处理程序,这个程序扫描a.asp,把其中用<%和%>括起来的代码解释并执行,最后把执行结果再传回给WWW服务器,WWW服务器把结果通过HTTP协议传回到浏览器。你可以用浏览器的查看源代码功能查看一下,你并没有发现<%和%>标记,因为它们已经在服务器端被处理掉了,浏览器所获得的仅仅是结果,是一些标准的HTML标记。整个过程如图。
下一讲中,我们将介绍一些Vbscript的基础知识。它是在ASP中用得最多的脚本语言之一。

---------------
1.2 JSP及其特点

JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,有关JSP基础概念的说明请参见《JSP技术简介 》。

许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。例如,下面就是一个简单的JSP页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD>
<BODY>
<H1>欢迎</H1>
<SMALL>欢迎,
<!-- 首次访问的用户名字为"New User" -->
<% out.println(Utils.getUserNameFromCookie(request)); %>
要设置帐号信息,请点击
<A HREF="Account-Settings.html">这里</A></SMALL>
<P>
页面的其余内容。.
</BODY></HTML>

下面是JSP和其他类似或相关技术的一个简单比较:

JSP和Active Server Pages(ASP)相比

Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。

JSP和纯Servlet相比

JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。

JSP和服务器端包含(Server-Side Include,SSI)相比

SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。

JSP和javascript相比

javascript能够在客户端动态地生成HTML。虽然javascript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对javascript来说都是不可用的。另外,由于是在客户端运行,javascript不能访问服务器端资源,比如数据库、目录信息等等。

4. 如何在JSP页面发送一个动态图像

要为你的jsp页面设置MIME类型,你需要设置页面的contentType属性:
<%@ page contentType="image/jpeg" ... %> 然后你需要创建一个BufferedImage绘制你的动态陵兄图像: BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB); 创建完一个BufferedImage后,你需要得到图形环境进行绘制,一个Graphics或者Graphics2D对象: Graphics g = image.getGraphics(); // or Graphics2d g2d = image.createGraphics(); 从现在起你就可以绘制图像内容了。对图形环境绘制就会画到BufferedImage。最开始这个图像都是黑色的,因此用你希望的背景颜色填充图像是一个不错的主意,然后,当你完成图像的绘制,你需要dispose图形环境: g.dispose(); // or g2d.dispose();
一旦完成图像的绘制,你在response中返回那个图像。你可以使用非标准的com.sun.image.codec.jpeg包中的JPEGImageEncoder类编码图像,或者如果你使用JDK1.4,你可以使用标准的ImageIO类。在使用JPEGImageEncoder时有一个技巧,你必须从ServletResponse取来ServletOutputStream而不能使用隐含的JSP输出变量out。
ServletOutputStream sos = response.getOutputStream(); JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(sos); encoder.encode(image); // or ImageIO.write(image, "JPEG", out);
这里有一个从所有的可能方案中(例缓好如g.dispose();或者g2d.dispose();)选取的一个完整的范例.这个例子使用Graphics对象绘制一个随机的多边形,图像通过JPEGImageEncoder绘制,你可以自由设置多边形的顶点数得到更复杂的形状,换言尺哪袭之,有更多顶点和边。

5. jsp怎样实现了网页动态效果的

我个人觉得你可以回答下jsp的原理:间接的回答了网页动态效果,用jsp技术开发的网页就具有动态效果,可以和数据库进行交互.

用户向服务器发送请求,才会显示完整的页面

  1. 从浏览器发送请求打开index.jsp页面
    2.服务器得到请求,会将index.jsp翻译成index_jsp.java
    3.服务器将index_jsp.java文件编译成index_jsp.class
    4.服务器运行index_jsp.class文件。
    5.在浏览器上显示jsp页面中的内容.

    面试官的问题不一定都需要回答正确完整,能回答80%就很不错了!

6. 请问jsp页面里面如何动态加载图片

用JS动态设置 <img 的 src

7. jsp中怎样得到一个动态时序图,向股票那样的

创建柱状图
1 引入jFreechart的包

2 在web.xml中加入

阅读全文

与jsp做动图相关的资料

热点内容
拷贝过来的pdf文件 浏览:751
抖音小店的访客数据怎么看 浏览:670
怎么把c语言编程的字符向下移动 浏览:786
sql删除文件组代码 浏览:978
安卓post请求多重json 浏览:776
微信消除数据怎么恢复 浏览:918
小米刷机显示系统找不到指定文件 浏览:528
苹果手机小风扇图app叫什么 浏览:292
繁体中文输入工具 浏览:916
pc桌面壁纸文件夹 浏览:473
微信怎么添加群 浏览:781
40岁男人适合的微信名 浏览:925
编程里比例怎么打 浏览:215
苹果12两个app如何分屏 浏览:592
ps下载完不是压缩文件 浏览:362
电脑中的个人文件包括什么 浏览:572
网络连接一般什么密码 浏览:199
java定时器quartz实例 浏览:259
稻壳excel文件太大怎么弄 浏览:901
文件里的视频如何保存到相册 浏览:428

友情链接