|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
[Java] applet e connessione a SQL server via HTML
Allora, ho scritto un'applet che si connette ad un server SQL 2000 e l'ho testata col runner del compilatore (Eclipse): funziona.
Poi l'ho integrata in un file HTML ma non essendo pratico temo di aver fatto qualche errore banale, poichè non funziona. L'applet si carica ma non visualizza ciò che dovrebbe e questo perchè (ho controllato sulla console java di Internet Explorer) mi dà SQLException: non si riesce a connettere al database. Riporto qua sotto il codice della pagina HTML: Codice:
<html> <head> <title>mista</title> </head> <body> Il seguente è un applet:<BR> <applet code="SQLHere.class" width=200 height=200>Il tuo browser è vecchio, cambialo!</APPLET> </body> </html> |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
L'applet viene mandato in esecuzione sul client e ha bisogno delle classi che fanno la connessione al DB, che dovrebbero essere un JAR.
Ora non ricordo la sintassi, ma devi modificare il codice HTML per fare caricare anche i jar con le librerie del caso. Tieni presente che, solitamente, è sbagliato fare la connessione da un applet a un DB per motivi di sicurezza. Ci sarebbero minori problemi di sicurezza solo se l'utente mette login e password e il tutto viaggia su canale sicuro. Resta il problema che hai una porta aperta sul server |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Ah ho capito, grazie! Cmq per la sicurezza non c'è problema tanto il concetto è che dei terminali devono accedere al file html che si trova sul server ma il server è in intranet, non in internet per cui non serve alcuna protezione ausiliaria.
PS Se qualcuno si ricordasse come dev'essere il codice HTML in questione mi farebbe felice! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Prova questo, se và ancora bene.
Nel tempo la sintassi è un po' cambiata... <applet code="SQLHere.class" archive="tuoSQL.jar" width=200 height=200> </APPLET> tuoSQL.jar è il jar che usi, mettilo dove hai la classe SQLHere.class Per dettagli vedi (ad es.): http://www.javaview.de/development/howtoView.html |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Grazie della dritta, ho modificato il codice come segue...
Codice:
<html>
<head>
<title>SQL Here</title>
</head>
<body>
Il seguente è un applet:<BR>
<applet code=SQLHere.class ARCHIVE=msbase.jar,mssqlserver.jar,msutil.jar width=200 height=200>
</APPLET>
</body>
</html>
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Prova a metterci i doppi apici
<applet code="SQLHere.class" ARCHIVE="msbase.jar,mssqlserver.jar,msutil.jar" width=200 height=200> Le restanti classi, se nella stessa directory o sottodirectory correttamente mappate tramite la dichiarazione package, vengono viste in automatico. Piuttosto, il tuo HTML si trova dove c'è la classe SQLHere.class ?? Un altro trucco pià sporco, è compattare i jar e metterli nella stessa directory dove hai la classe, ma usalo come estrema soluzione perché rallenta anche il caricamenteo (vabbè, sei in intranet...) |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
- ho provato anche a metterci gli apici, non cambia nulla.
- classi e archivi sono tutti nella stessa direcory, così come il file html. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Posta l'errore, perché mi sa che si capisce di più...
Quando dici che funziona, mi sa che intendi in locale. Bisognerebbe vedere varie cose, tra le quali un eventuale firewall. Tieni presente che per via della sandbox, di default le connessioni possono avvenire solo verso l'host da cui si è caricato l'applet. Verifica che non ci sia qualche incongruenza (tipo l'uso di localhost nelle url) |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
non ti potrà mai funzionare così...
devi mettere le tue classi in un jar ed effettuare il signing dell'archivio, in questo modo potri connetterti al server, altrimenti con un applet non signata puoi connetterti solo a localhost. cmq io ti consiglierei di passare a java web start con cui mi sono trovato molto meglio rispetto alle applet
__________________
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Grazie ma devo per forza usare le applet, mi sa.
Cmq credo di aver capito, anche se non so bene come signare gli archivi... In caso torno! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Non so quanto ti alteri la struttura del server, ma la cosa migliore sarebbe di spezzare il codice mettendo le interrogazioni al DB in una o più servlet, che vengono invocate dall'applet alla quale trasmettono il risultato serializzato dell'operazione (un'istanza di una classe, un vettore di oggetti, ecc)
|
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Quote:
PS Per la cosa dell'HTML avevate ragione: ora funziona. Grazie mille! |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Quote:
2) non devi mettere nella applet i dati di accesso, in quanto vengon effettuati appunto da localhost Ti serve però un server per mandare in esecuzione le servlet, ad es. Tomcat. |
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Capito... e per caso sono anche più performanti a livello di computazione? Sapete... a caricare l'applet ci mette un pochino...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
sono due tecnologie completamente differenti....
le servlet girano sul server, mentre le applet girano sul client.... è ovvio ke per caricare le applet ci mette un pokino perkè la devi scaricare dal sito, mentre le servlet restano sul server. Io ti ho consigliato il webstart xkè è molto + comodo e flessibile da gestire delle applet.... ma se devi integrare il tutto in una pagina web forse a 'sto punto ti conveniva usare direttamente le JSP...
__________________
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Quote:
Ti faccio solo un esempio: metti che tu devi pubblicare la somma dei prezzi degli oggetti in un carrello che contiene 1000 oggetti, più qualche elaborazione: se fai la query da applet fai viaggiare sulla rete tutti i valori recuperati dalla query affinché l'applet li elabori. Se fai fare l'elaborazione alla servlet sul server, eviti il traffico di rete e ti viene trasmesso solo il valore che volevi. |
|
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
|
Mi avete convinto!
Magari sareste anche così gentili da indicarmi una piccola guida Web sui servlet (meglio se in italiano) e gli strumenti necessari? (io uso Eclipse ma mi sembra che non supporti la compilazione dei servlet) |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
boh.. io conosco solo il tutorial della sun su j2ee ... ma è in inglese.... (mi pare..
)
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:22.











)








