Avatar billede Slettet bruger
19. november 2001 - 18:16 Der er 1 løsning

Diagrammer i JSP

Hey

Jeg skal til at lave nogle sider med diagrammer - baseret på data fra en database. - Så nu mangler jeg lidt information om, hvordan man nemmeste laver diagrammer på JSP sider. - Diagrammerne skal være kurvediagrammer og være browser/system uafhængige (altså anvendes på PC/MAC)

Gerne nogle eksempler eller links..

Takker på forhånd
Avatar billede disky Nybegynder
20. november 2001 - 08:50 #1
Kig på http://www.acme.com/ de har lavet moduler til at kunne gemme .gif med.

For at kunne lave et grafik billede allokerer du et Image i hukommelsen, og tegner i det.

Dette Image gemmer du så som .gif på HD\'en og henter fra din jsp side.

p.s. Om det lige er et Image kan jeg ikke huske (lang tid sinde jeg brugte det :-)



Her er et eksempel på en Counter som bliver brugt på et større homepage hotel idag. Jeg har fjernet nogle database ting, men doGet() skulle vise hvad man gør, i din jsp side kalder du bare denne servlet som var det et image, og den returnere så et genereret .gif billede af en counter.


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import Acme.JPM.Encoders.GifEncoder;

public class counter extends HttpServlet
{
    private final String     path=\"/www/gfx/digits/\";
    private final String    defaultStyle=\"0\";
       
    private fontgrabber fg = null;
    private fontinfo fi = null;
    private GifEncoder gifEncoder = null;

    /** Holds value of property counter. */
    private int counter;
    /**
    * Service
    * Handles GET request-response
    * @param    HttpServletRequest, HttpServletResponse
    */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        response.setContentType(\"image/gif\");


        //make sure that the GIF pictures is not being cached by browser or proxy server
        response.setDateHeader(\"Expires\", 0);
        response.setHeader(\"Pragma\", \"no-cache\");
        if (request.getProtocol().equals(\"HTTP/1.1\"))
        {
            response.setHeader(\"Cache-Control\", \"no-cache\");
        }
       
        //get the outputStream from the response object
        ServletOutputStream out=response.getOutputStream();

        //get querystring information

    tal=12345; //counter værdi
       

        if (readBitmap(path+style+\".ffi\"))
        {
            //Transparent => color < 0x08000000
            fg = new fontgrabber(fi, tal, 0x07000000);
            gifEncoder=new GifEncoder(fg.getImageProd(),out);
            gifEncoder.encode();
        }
    }

 
    /**
    * Reads Bitmap and font descriptor.
    */
    private boolean readBitmap(String fn)
    {
        /*-- Load font descriptor --*/
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        try
        {
            fis = new FileInputStream(fn);
            ois = new ObjectInputStream(fis);
            fi = (fontinfo)ois.readObject();
            ois.close();
            fis.close();
        }
        catch (Exception e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        return true;
    }
    /** Getter for property counter.
    * @return Value of property counter.
    */
    public int getCounter()
    {
        return counter;
    }
    /** Setter for property counter.
    * @param counter New value of property counter.
    */
    public void setCounter(int counter)
    {
        this.counter = counter;
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester