salve a tutti
Sto cercando di collegare una applet per visualizzare un grafico a un database in modo che la applet risulti dinamica e cambi ogni volta che si modifica il database..
l'unico problema è che non ho idea di come fare
qualcuno mi aiuti!!
salve a tutti
Sto cercando di collegare una applet per visualizzare un grafico a un database in modo che la applet risulti dinamica e cambi ogni volta che si modifica il database..
l'unico problema è che non ho idea di come fare
qualcuno mi aiuti!!
Spostato su Programmazione
File reality.sys corrupted
Reboot universe? y/n
Non arrabbiarti. Tanto un giorno il mondo farà a meno di te
Ciao e benvenuto!
Il problema fondamentale è che le applet possono comunicare solo con il server da cui sono state scaricate. Le soluzioni per aggirare il problema sono 3:
- Usare le applet certificate che non hanno queste limitazioni (fai una ricerca se ne è già parlato)
- Lasciare un applicazione in ascolto sul server che faccia da tramite con il db, a cui l'applet si può connettere tramite socket
- Se usi linguaggi server-side, puoi scrivere dinamicamente il codice html, quindi anche i parametri da passare all'applet (forse la via più semplice)
Spero di essere stato chiaro, in caso contrario chiedi pure qualche chiarimento
Penso che il terzo punto sia quello più opportuno per me; infatti sto costruendo un sito e devo visualizzare un grafico tramite l'applet. Il grafico che devo visualizzare è relativo ai risultati di un sondaggio che vengono memorizzati sul database e vengono aggiornati ogni volta che si vota.
i dati per il grafico li devo prelevare dal database o dalla pagina che mi visualizza i risultati sul sito (è una servlet)?
Ok, funziona così:
devi impostare l'applet per ricevere eventuali parametri.
Per ogni parametro che ti serve devi inserire un tag <parameter> tra i tag <applet></applet>
I tag parameter devi inserirli dinamicamente; cioè, nella servlet, interroghi il database e stampi i valori ottenuti nell'attributo value del tag parameter.
Ad esempio
Così facendo, nel codice html generato avraicodice:out.Write("<parameter name=\"val1\" value=\"" + risQuery + "\" />
codice:<applet ...i vari parametri> <parameter name="val1" value="100" /> <parameter name="val2" value="140" /> <parameter name="val3" value="90" /> ecc... </applet>
scusami ma sono stupido..
l'Applet che devo modificare è questa:
<applet code="chart.class" width="600" height="300">
<param name="title" value="Statistiche di accesso sulla index di HTML POINT">
<param name="columns" value="4">
<param name="orientation" value="vertical">
<param name="scale" value="1">
<param name="Title_Font" value="Arial">
<param name="Column_Font" value="Arial">
<param name="format" value="none">
<param name="bgcolor" value="CCCCCC">
<param name="c2_color" value="007700">
<param name="c2_label" value="aprile 98">
<param name="c1_style" value="solid">
<param name="c4" value="1000">
<param name="c3" value="800">
<param name="c2" value="300">
<param name="c4_color" value="777700">
<param name="c1" value="100">
<param name="c4_label" value="dicembre 98">
<param name="c3_style" value="solidgrad">
<param name="c1_color" value="000077">
<param name="c1_label" value="gennaio98">
<param name="c3_color" value="000077">
<param name="c3_label" value="settembre 98">
<param name="c2_style" value="striped">
<param name="c4_style" value="stripedgrad">
</applet>
questa invece è la servlet che aggiorna le votazioni del sondaggio:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class risultato extends HttpServlet
{
public void service
(HttpServletRequest req, HttpServletResponse res)
throws IOException{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
int tot=10;
String risp[]=new String[tot];
risp[0]="Vigor Prater";
risp[1]="Cerredolese";
risp[2]="Reggio Calcio";
risp[3]="Fabbrico";
risp[4]="Cadelboschese";
risp[5]="Tricolore Reggiana";
risp[6]="Reggiolo";
risp[7]="Gualtierese";
risp[8]="Cavola";
risp[9]="Montecchio";
String dbUrl="jdbcdbc:database";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(dbUrl);
Statement s=con.createStatement();
ResultSet r;
out.println("<html>");
out.println("<head>");
out.println("<title>Risultati</title>");
out.println("</head>");
out.println("<body bgcolor='lightcyan' text='blue'>");
out.println("<font color='blue'>");
out.println("<h2>Risultati:</h2>");
out.println("</font>
");
for (int i=0; i<tot; i++){
r=s.executeQuery("SELECT Voti FROM Votazioni WHERE Risposta = "+i);
r.next();
out.println(""+risp[i]+" : "+r.getString("Voti")+" voto
");
}
out.println("
");
out.print("<FONT size='3' color=blue>Torna indietro</FONT>");
s.close();
con.close();
} catch (Exception e) {
out.println("<html>");
out.println("<body bgcolor=lightcyan text=blue>");
out.println("<center>");
out.println("
");
out.println("<h1> E' successo un errore dopo la query sul data base</H1>");
out.println(e.toString());
out.println("</center>");
out.println("</body>");
out.println("</html>");
}
}
}
Riusciresti a dirmi come e dove modificare il codice?
grazie e scusa ancora
ciao
Così non è semplice, hai qualche documentazione in più per l'applet?
PS: Quando devi inserire il codice usa il tasto [CODE]
per quanto riguarda l'applet ho il file class che posso decompilare in .java
per il code ok d'ora in poi lo uso..
se dici che è complicato sarebbe più semplice prendere i dati dal database?
La cosa che non ho ben capito è da dove l'applet prende i dati per generare il grafico. Dal codice che vedo sembra sia un istogramma, giusto?
In tal caso devi comunque stampare i tag applet (nel tuo codice non li vedo)
Ad esempio:
I parametri più importanti dell'applet sono cX_label (le intestazioni) e cX_value (i valori). Devi stampare i parametri in base ai risultati della querycodice:out.write("<applet code = \"chart.class\">"); ... out.write("<param name=\"c1\" value=\"Qui va il dato preso dalla query\">"); ...
Esatto si tratta di un istogramma
ok probabilmente ho capito, però quando compilo la servlet mi da l'errore:
<identifier> expected
Sai dirmi di cosa si tratta?java è una cosa abbastanza sconosciuta..
grazie