利用JFreeChart在browser中绘图(Servlet)

将django-filebrowser整合Ueditor作为图片管理器 Ueditor是国内广泛使用的一款开源编辑器,但是其缺点是图片管理功能比较简陋,图片选择不显示图片名,无法删除图片以及 无法创建文件夹等问题导致图片很难维护。 整合思路:给ueditor加入自定义对话框调用filebrowser接口并创建适合ueditor的filebrowser回调函数。 一、 创建ueditor的customize dialog 在static/ueditor/下 阅读详情

Step 1 :
HTML:
MyHtml.html include a button, this button submit a request "draw"  to "ChartServlet" servlet, "ChartServlet" will give a response.

MyHtml.html is like this:

 

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>MyHtml.html</title>
  5.     
  6.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  7.     <meta http-equiv="description" content="this is my page">
  8.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  9.     
  10.     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  11.   </head>
  12.   
  13.   <body><h3>Draw a Chat !</h3><br>
  14.     <form action="draw.do" method="get" name ="myform">
  15.     <input type="submit" name="b1" value="draw"></input>
  16.     </form>
  17.   </body>
  18. </html>

Step 2:

modifY web.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4" 
  3.     xmlns="http://java.sun.com/xml/ns/j2ee" 
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7.   <servlet>
  8.     <description>This is the description of my J2EE component</description>
  9.     <display-name>This is the display name of my J2EE component</display-name>
  10.     <servlet-name>ChartServlet</servlet-name>
  11.     <servlet-class>ChartServlet</servlet-class>
  12.   </servlet>
  13.   <servlet-mapping>
  14.     <servlet-name>ChartServlet</servlet-name>
  15.     <url-pattern>/draw.do</url-pattern>
  16.   </servlet-mapping>
  17. </web-app>

Step 3:

ChartServlet recieves the request, then response it with the type "image/png" like this

 

  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.ServletOutputStream;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.jfree.chart.ChartFactory;
  9. import org.jfree.chart.ChartUtilities;
  10. import org.jfree.chart.JFreeChart;
  11. import org.jfree.data.general.DefaultPieDataset;
  12. import com.lowagie.text.pdf.codec.Base64.OutputStream;
  13. public class ChartServlet extends HttpServlet {
  14.     /**
  15.      * Constructor of the object.
  16.      */
  17.     public ChartServlet() {
  18.         super();
  19.     }
  20.     /**
  21.      * Destruction of the servlet. <br>
  22.      */
  23.     public void destroy() {
  24.         super.destroy(); // Just puts "destroy" string in log
  25.         // Put your code here
  26.     }
  27.     /**
  28.      * The doGet method of the servlet. <br>
  29.      *
  30.      * This method is called when a form has its tag value method equals to get.
  31.      * 
  32.      * @param request the request send by the client to the server
  33.      * @param response the response send by the server to the client
  34.      * @throws ServletException if an error occurred
  35.      * @throws IOException if an error occurred
  36.      */
  37.     public void doGet(HttpServletRequest request, HttpServletResponse response)
  38.             throws ServletException, IOException {
  39.         ServletOutputStream out = response.getOutputStream(); 
  40. //       createadataset...
  41.         DefaultPieDataset dataset = new DefaultPieDataset();
  42.         dataset.setValue("Category1", 43.2);
  43.         dataset.setValue("Category2", 27.9);
  44.         dataset.setValue("Category3", 79.5);
  45.         // createachart...
  46.         JFreeChart chart = ChartFactory.createPieChart("SamplePieChart",
  47.                 dataset, true,// legend?
  48.                 true,// tooltips?
  49.                 false// URLs?
  50.                 );
  51.         response.setContentType("image/png");
  52.         ChartUtilities.writeChartAsPNG(out,chart,400,300);
  53.         out.close();
  54.     }
  55.     /**
  56.      * Initialization of the servlet. <br>
  57.      *
  58.      * @throws ServletException if an error occure
  59.      */
  60.     public void init() throws ServletException {
  61.         // Put your code here
  62.     }
  63. }

This servlet just do one simple thing, when request whose name is "draw" comes, the servlet will draw a chart(with JFreeChart support), the result is a image file as png, then, it adds this file to the response stream., which will output by the browser

 

Here we go!

 

Contact me! Tony80plus@gmail.com

 

JFreeChart开发股票K线图  在JAVA的图形开发中,JFreeChart提供源代码及DEMO代码,详细的API工具,如果遇到问题还可以到http://www.jfree.org/phpBB2这个论坛一问究竟,全面的技术支持使图形开发起来得心应手!下面的例子是用JFreeChart开发股票K线图,附有注释 import java.sql.*;import java.text.SimpleDateFormat; 阅读详情

相关推荐

ATGrid + JSP + Javascript + XML 开发Web控件打印

 ATGrid  是国内的一款提供WEB打印解决方案的插件,最近由于项目需要,花了几天研究了下,并用这个插件实现了WEB打印,方案如下~ 因为是摸索,希望大家多多指教~插件的下载 ATGrid控件下载地址: http://www.etcell.com/ATGrid/ATGrid.dll ATGrid控件WEB运行包下载地址: http://www.etcell.com/ATGrid/ATGrid.

2700

利用 POI 从JSP表格中生成excel文件

 我研究了一天,终于得到了比较满意的效果。其中遇到了各种问题,着实耗费了不少时间。在项目中,你可能会遇到将JSP中表格的数据生成报表的应用,下面我介绍下我的做法。因为我的这个项目是用STRUTS 2.0做的,在需要生成报表的这个页面,我新建了一个Button,用来生成excel文件代码如下:table border="0" cellpadding="0" cellspacing

2632

Dromara MaxKey单点登录认证系统是业界领先的IAM-IDaas身份管理和认证产品,寓意它能够像一把万能钥匙(最大钥匙)一样,解锁复杂的企业安全需求,提供简洁而高效的解决方案

单点登录认证系统是业界领先的IAM-IDaas身份管理和认证产品,遵循Apache-2.0开源免费,支持OAuth2.x、OpenID Connect、SAML2.0、CAS、JWT、SCIM等SSO标准协议,基于RBAC统一权限控制,实现用户生命周期管理,开源、安全、合规、自主可控

JAVA基于Lucene实现建立索引以及检索

Step 1 利用Lucene建立索引数据库中存放了数据集,对应上万个TXT的文件,表FILE含有两个字段,分别为path和content,依次保存文件的路径和内容。这里,利用Lucene对这些数据建立索引。 package pretreatment;import java.io.File;import java.io.IOException;import java.sql

2389

多智能体-系统-形成-控制 附matlab代码.rar

多智能体-系统-形成-控制 附matlab代码.rar

SQLite Expert Professional v6.2.12.746 (x86 & x64) + License Key & Keygen.7z

SQLite Expert Professional v6.2.12.746 (x86 & x64) + License Key & Keygen.7z

Javascript 传递中文参数 乱码问题 的解决

最近在一个基于struts 2的项目中,遇到了JS传递中文参数乱码的问题,郁闷的蛮久,终于找到了解决方法。在JS中,我有一个方法,为Form指定Action,如下:function zw(){var url = "***.action?zw="+zw(中文);document.myform.action=url;document.myform.submit()    }这样

2115

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了两相交错并联Buck-Boost变换器的Simulink仿真模型设计与实现过程,系统阐述了该拓扑结构的工作原理及其在升降压模式下的运行特性。通过引入交错并联技术,有效降低了输入输出电流纹波,提升了系统效率与功率密度。文中构建了完整的电压电流双闭环PI控制系统,确保输出电压稳定并具备良好的动态响应能力,同时深入分析了占空比分配与相位交错对系统性能的影响。仿真模型全面验证了变换器在不同负载条件及输入电压波动下的静态与动态性能,充分体现了控制策略的有效性与系统的鲁棒性。; 适合人群:具备电力电子技术基础和Simulink仿真经验,从事开关电源、新能源变换系统研发的工程技术人员或高等院校电力电子与电力传动方向的研究生。; 使用场景及目标:①掌握两相交错并联Buck-Boost变换器的建模方法与工作机理;②学习双闭环PI控制器的设计流程与参数整定技巧;③深入理解多相变换器的均流控制、纹波抑制机制与动态响应特性;④为高效率、高功率密度DC-DC变换器的实际工程设计提供理论依据与仿真验证平台。; 阅读建议:建议读者结合所提供的Simulink模型文件进行同步操作,亲手搭建与调试电路,重点关注控制器参数调整对系统稳定性、响应速度及抗扰能力的影响,后续可进一步拓展至数字控制实现、硬件在环测试及实际样机开发。

利用SAX解析XML Document(实例解析http://api.google.com/GoogleSearch.wsdl)

最近在学习 Web Services , 这里介绍一个 利用SAX解析XML Document 的例子,用JAVA编写,可以直接运行的 import java.io.StringWriter;import java.util.LinkedList;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXP

1682

【CEEMDAN-WOA-LSTM】完备集合经验模态分解-鲸鱼优化-长短时记忆神经网络研究(Python代码实现)

内容概要:本文详细介绍了一种结合完备集合经验模态分解(CEEMDAN)、鲸鱼优化算法(WOA)与长短时记忆神经网络(LSTM)的时间序列预测模型,并提供了完整的Python代码实现。该模型首先利用CEEMDAN对原始非平稳、高噪声的时间序列信号进行自适应分解,获得一组相对平稳的本征模态函数(IMF)分量;接着采用WOA对LSTM的关键超参数进行智能寻优,以克服传统手动调参的局限性,提升模型的泛化性能与预测精度;最后构建多通道LSTM网络对各IMF分量分别建模预测,并将结果叠加重构得到最终预测输出。通过实验验证,该混合模型在处理非线性、非平稳且含强噪声的数据时,相较单一LSTM或其他组合模型展现出更优异的预测准确性与鲁棒性。; 适合人群:具备Python编程基础和机器学习基础知识的科研人员、研究生及工程师,特别适用于从事能源预测(如风电、光伏、电力负荷)、信号处理、故障诊断、金融时序分析等相关领域的研究人员。; 使用场景及目标:①应用于电力系统中的风速、光照强度、负荷等关键变量的高精度短期与中期预测;②用于处理工业现场中受噪声干扰严重的传感器信号,提升数据分析质量;③为需要高性能预测模型的科研项目提供可复现、可扩展的算法框架与代码支持,推动智能优化算法与深度学习在实际工程问题中的深度融合与应用。; 阅读建议:建议读者结合提供的Python代码逐模块学习,重点理解CEEMDAN的信号分解机制、WOA优化LSTM超参数的实现流程以及多分量预测结果的重构策略,鼓励在真实数据集上动手复现并调整参数,以深入掌握模型的设计思想与调优技巧。

继电保护小电流接地系统故障仿真-中性点不接地与经消弧线圈接地仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了三电平VIENNA整流器的双闭环控制与中点电位平衡的仿真研究,重点探讨了由电压外环与电流内环构成的双闭环PI控制结构,以及基于上下电容电压差值补偿的中点电位平衡策略。通过引入SVPWM调制技术,利用冗余小矢量的时间分配自由度,实现对中点电位的主动调节,从而在不牺牲输入电流谐波性能的前提下,显著提升了电容电压的均衡度。仿真结果表明,该控制策略能够有效稳定直流母线电压并实现中点电位的精确平衡,具备良好的动态响应能力和鲁棒性。; 适合人群:具备电力电子与电力系统基础知识,从事新能源发电、电动汽车充电、工业电源等领域的科研人员及工程技术人员,尤其是熟悉MATLAB/Simulink仿真环境的研发人员。; 使用场景及目标:①用于中大功率单向整流场合如充电桩、航空电源等系统中三电平VIENNA整流器的控制设计与优化;②为解决三电平拓扑固有的中点电位波动问题提供可行的技术方案,提升系统输出品质与可靠性;③作为高校研究生在电力电子变换器先进控制策略方面的教学与研究参考案例。; 阅读建议:建议读者结合文中提供的仿真模型与参数设置进行复现实验,重点关注双闭环带宽匹配、差值补偿环的设计边界及SVPWM调制细节,同时可进一步探究在电网不平衡、轻载等极端工况下的控制性能,以深化对系统动态特性的理解。

一个键盘监听的例子

处理键盘监听事件的例子 本例实现对panel中文本框的输入监听,代码如下:   import java.awt.*;   import java.awt.event.*;     public class Ke extends Frame     {     TextField   t;     Panel   p;     public Ke()     {     super(

1334

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文围绕两路半桥LLC谐振变换器的软开关特性展开Simulink仿真研究,重点分析了不同谐振参数(如谐振电感、谐振电容)以及分裂电容结构对系统性能的影响。通过构建详细的开环与闭环控制仿真模型,深入探究变换器在变频控制下的动态响应、能量传输效率及软开关实现条件,验证了在宽负载范围内实现零电压开通(ZVS)和零电流关断(ZCS)的可行性。研究特别关注分裂电容对谐振腔参数调节的作用机制,揭示其在优化高频高效电源设计中的关键价值,为高性能DC-DC变换器的设计提供了理论依据与实践指导。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频电源、新能源变换器、电动汽车充电模块等领域的研发工程师和技术人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理及其软开关的实现条件;②掌握基于Simulink的电力电子系统建模与仿真分析方法;③探究分裂电容等关键结构对谐振参数与系统效率的影响,进而优化高效率、高功率密度电源的拓扑设计与参数匹配。; 阅读建议:读者应具备电路理论、电力电子变流技术的基础知识,建议在学习过程中结合所提供的Simulink模型进行实际操作,重点观察谐振参数变化对电流电压波形及软开关过程的影响,并尝试调整控制器参数以分析系统的动态响应与稳定性表现。

3 ways to execute python scripts in java (Including 3rd party packages)

If you want to execute some piece of python script code in your java programm, you may have two good options to achieve this. One is "javax.script" , the other is "jython"Both of them could open

1229

具有PWM控制VSC-HVDC链路的IEEE30总线传输系统(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink的具有PWM控制VSC-HVDC链路的IEEE30总线传输系统的建模与仿真研究。系统采用电压源型换流器(VSC)结合脉宽调制(PWM)技术实现高压直流输电(HVDC),并将其集成到标准的IEEE30节点电力系统中,以验证其在潮流控制、电压稳定和功率传输方面的性能。通过构建完整的系统模型,包括交流电网、VSC换流站、PWM控制器、直流输电线路及配套控制系统,实现了对有功功率与无功功率的独立精确调控。仿真结果表明,该VSC-HVDC系统在提升电网灵活性、增强系统稳定性以及优化电能传输效率方面具有显著优势,为现代柔性交流输电系统(FACTS)和智能电网建设提供了有力的技术支撑与参考依据。; 适合人群:具备电力系统分析、电力电子技术和自动控制理论基础知识的研究生、科研人员及电气工程领域的技术人员。; 使用场景及目标:①研究VSC-HVDC技术在复杂电网(如IEEE30节点系统)中的集成与应用;②掌握PWM控制策略在高压直流输电中的具体实现方法;③分析VSC-HVDC系统对电网潮流分布、电压稳定性和传输能力的影响。; 阅读建议:此资源以Simulink仿真为核心,不仅提供了系统的实现代码,更侧重于背后的技术原理和控制策略的解析。建议读者在学习时,应结合电力电子、电力系统暂稳态分析等理论知识,动手搭建并调试模型,通过改变系统参数和运行工况,深入理解VSC-HVDC的动态响应特性与控制机理。

多目标粒子群算法求解综合能源系统最优容量配置研究(Matlab代码实现)

内容概要:本文围绕多目标粒子群算法在综合能源系统最优容量配置中的应用展开研究,旨在通过Matlab代码实现,解决包含多种能源设备(如光伏、风电、储能等)的综合能源系统在经济性、环保性和能效性等多目标下的容量优化配置问题。文中详细介绍了综合能源系统的构成与运行机理,建立了考虑设备投资成本、运行维护费用、购能支出及碳排放惩罚等多目标的优化模型,并采用多目标粒子群算法(MOPSO)进行求解,实现了Pareto最优前沿的搜索。研究通过具体算例验证了所提方法的有效性与优越性,能够为综合能源系统的规划设计提供科学依据和技术支持。; 适合人群:具备一定电力系统、能源系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于综合能源系统、微电网等领域的科研与教学,帮助理解多目标优化问题的建模与求解过程;②为实际工程项目中的能源设备选型与容量配置提供决策支持,实现系统经济、环保、高效的运行目标。; 阅读建议:建议读者结合Matlab代码,深入理解算法实现细节与模型构建逻辑,通过调整算例参数和优化目标,探究不同因素对优化结果的影响,以加深对多目标粒子群算法及综合能源系统优化配置问题的理解。

在FORM的不同按钮实现不同的ACTION的方法

 form name="myForm" method="post" action="">input type="text">input type="button" name="b1" value="b1" onclick="submitform(b1)">input type="button" name="b2" value="b2" onclick="submitform(b2)">fo

789

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5098
上一篇: 利用SAX解析XML Document(实例解析http://api.google.com/GoogleSearch.wsdl)
下一篇: General Introduction of Web Service Security
TopestCoder
博客等级 码龄19年 12粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值