现在的位置: 首页 > 综合 > 正文

宋庆林的BLOG: JAVA动态生成SVG并输出到web页面

2013年06月25日 ⁄ 综合 ⁄ 共 1107字 ⁄ 字号 评论关闭

导读:

关于SVG(Scalable Vector Graphics)网络上有很多文章进行了介绍,比较突出的特点就是随意缩放,因为SVG是矢量图。不过我认为SVG更大的特点就是灵活,可以随意动态生成。.net、javascript结合DOM动态生成并显示SVG的文章比较多,但是JAVA动态生成并显示SVG的文章大多介绍的是生成.svg文件后再显示,Apache的开源项目Batik也不过是提供了一套API,可以生成DOM而已,最终的显示还是要存为.svg文件。最近的项目中恰巧运用到了相关的知识,经过长弓无敌的“动态制作svg介绍”启发,在这里做个总结。

 

环境:
App Server: BEA Weblogic 8.14

SVG Viewer: Adobe SvgViewer 3.0

 

1、建立一个Servlet,命名为:test.SvgServlet

2、在test.SvgServllet的service(HttpServletRequest req, HttpServletResponse res)方法中加入如下代码:

        res.setContentType("text/svg+xml");
        ServletOutputStream out = res.getOutputStream();
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.flush();
        out.close();

3、在对应的web app的web.xml文件中加入如下配置信息:

 
    SvgServlet
    test.SvgServlet
 

 
    SvgServlet
    SvgServlet.svg
 

4、建立显示SVG文件的html页面,命名为:TestSvgView.html

5、在TestSvgView.html的body部分加入如下代码:


6、将web app部署到App Server上,然后打开TestSvgView.html页面,即可显示出所需的结果。

 

需要注意的地方:servlet的url-pattern名称,必须以.svg结尾。

 

(附:按照长弓无敌的“动态制作svg介绍”做试验的时候,我本地显示不出任何画面,不清楚究竟是什么原因,根据经验猜测原因可能为:Adobe SvgViewer不支持非.svg结尾的svg文件显示。)

本文转自
http://songql.spaces.live.com/blog/cns!E3455EA204546FD7!114.entry

抱歉!评论已关闭.