通过JAVA SERVLET直接输出SAS gchart 产生的图片到浏览器

来源:互联网 发布:海底捞营业额的数据图 编辑:程序博客网 时间:2024/06/18 11:38

JSP例子

<%@taglib uri="http://www.sas.com/taglib/sasads" prefix="sasads"%>
<br>
<img src=/streamImage/servlet/createGraphImage>
<p>

Servlet例子 (createGraphImage.java) 

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class createGraphImage
 extends javax.servlet.http.HttpServlet

{
  /*
   * doPost()
   * Respond to the Post message.
   */
   public void doPost(javax.servlet.http.HttpServletRequest request,
     javax.servlet.http.HttpServletResponse response)
     throws javax.servlet.ServletException, java.io.IOException
   {
 doGet( request, response );
   }

  /*
   * doGet()
   * Respond to the Get message.
   */
   public void doGet(javax.servlet.http.HttpServletRequest request,
     javax.servlet.http.HttpServletResponse response)
     throws javax.servlet.ServletException, java.io.IOException
   {
    try{
       com.sas.rmi.Rocf rocf = new com.sas.rmi.Rocf();
       com.sas.rmi.Connection connection = new com.sas.rmi.Connection();

       com.sas.servlet.util.SocketListener socket = new
       com.sas.servlet.util.SocketListener();
       int port = socket.setup();
       socket.start();
       com.sas.sasserver.submit.SubmitInterface si =
 (com.sas.sasserver.submit.SubmitInterface)
 rocf.newInstance(com.sas.sasserver.submit.SubmitInterface.class,
connection);

       String stmt = "filename sock SOCKET 'localhost:" + port + "';" +
   "goptions gsfname=sock dev=gif;"+
   "proc gchart data=sashelp.class;"+
   "hbar3d sex;"+
   "run;";
       si.setProgramText(stmt);
       response.setContentType("image/gif");
       socket.write( response.getOutputStream());
       rocf.stop();

    }catch(Exception e){e.printStackTrace();}
  }
}

 

原文来自SAS网站,文章名为<Streaming a graph directly to an Image Tag>

原创粉丝点击