Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-03-2006, 16:53   #1
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
[Java Servlet] Pagina pasticciata quando aperta in contemporanea

Il problema è questo: sto sviluppando un'applicazione Server-Oriented per una rete intranet: essenzialmente più terminali devono collegarsi contemporaneamente al server (Apache Tomcat) tramite collegamento wireless; il server distingue le varie sessioni e, di conseguenza, non dovrebbero esserci problemi all'apertura contemporanea della servlet da parte di più terminali...

Ciò, infatti, è vero per alcune di esse (l'applicativo è sviluppato su più pagine/servlet tra esse collegate) ma nell'apertura di una data servlet (particolarmente complessa e dal caricamento lungo), viene fuori un bel pasticcio: a volte da un terminale viene stampata una doppia pagina (in cascata), mentre dall'altro pagina vuota (o parzialmente stampata); altre volte da una parte mi dà errore; altre volte ancora entrambe le pagine vengono visualizzate con frammenti di codice in bella vista tra un campo testo e un'altro...

Mi verrebbe quasi da pensare che sia un problema del Tomcat e non del codice... ma spero proprio di no!

La mia speranza è che qualcuno di voi sia incappato nel mio stesso problema e che mi spieghi come risolverlo. Grazie.
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2006, 17:13   #2
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
La servlet non dovrebbe mai essere troppo grande o particolarmente complessa.
Hai già provato a spostare fuori il codice "pesante" e a richiamarlo dalla servlet, in modo da attivare lo stream di output quando cominciano ad arrivare i dati dell'elaborazione e non durante ?
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2006, 10:27   #3
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
Quote:
Originariamente inviato da pinok
La servlet non dovrebbe mai essere troppo grande o particolarmente complessa.
Hai già provato a spostare fuori il codice "pesante" e a richiamarlo dalla servlet, in modo da attivare lo stream di output quando cominciano ad arrivare i dati dell'elaborazione e non durante ?
Uhmmm... no, in effetti e se devo essere sincero non ho ben idea di come procedere. Un aiutino?
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2006, 12:45   #4
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da Corvo80
Uhmmm... no, in effetti e se devo essere sincero non ho ben idea di come procedere. Un aiutino?
Ti fai una classe che si occupa delle elaborazioni, meglio se messa in un package (=directory).
Poi nella servlet importi la classe, passi i parametri che servono all'elaborazione (mediante il costruttore o direttamente al metodo), invochi il metodo e recuperi il risultato (ad es. un vettore o uno stringbuffer se è una sequenza di istruzioni HTML).

Quindi apri lo stream di scrittura, ci riversi il codice HTML e chiudi lo stream, eventualmente invocandoci sopra un flush per pulirlo.
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 14:00   #5
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
Mi sono appena reso conto di una grave inconsistenza del mio codice (la mia niubbaggine non smette mai di stupirmi). L'oggetto PrintWriter che uso per lo streaming di output l'ho dichiarato fuori dai metodi (i quali non sono synchronized), con conseguente insorgere di problemi di concorrenza.

Se ho capito bene basta chiudere il codice concorrente in blocchi synchronized o dichiarare l'oggetto PrintWriter dentro e non fuori dei metodi, vero?
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 14:03   #6
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da Corvo80
Se ho capito bene basta chiudere il codice concorrente in blocchi synchronized o dichiarare l'oggetto PrintWriter dentro e non fuori dei metodi, vero?
Potrebbe bastare.
Provare, grazie al cut & paste, costa poca fatica quindi prova con una servlet e se funziona fallo per le altre.

Il suggerimento di organizzare meglio il codice resta comunque valido, se non altro per facilità di gestione e riusabilità del codice
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 14:19   #7
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
Come sempre hai ragione.

Grazie dell'aiuto, se avrò altri problemi tornerò a perseguitarti!!!
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 14:41   #8
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da Corvo80
Come sempre hai ragione.

Grazie dell'aiuto, se avrò altri problemi tornerò a perseguitarti!!!

Scherzo, sono qua...
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 16:33   #9
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
Neanche a farlo apposta ho subito un altro consiglio da chiederti/vi.

Sto riprogettando il codice rendendolo più modulare e più elegante e mi è giunto un dilemma:

siccome gli elementi dell'interfaccia grafica (nomi delle label, dimensioni dei campi testo, etc...) delle varie servlet vengono letti da database tramite interrogazioni SQL restituite come oggetti ResultSet, l'idea è quella di eseguire la query alla prima apertura della servlet ( dal metodo init() ) e clonarne il risultato ogni volta che una nuova sessione viene creata.

Il problema è che gli oggetti ResultSet non sono clonabili, a quanto pare. Come posso fare?
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 20:07   #10
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Cosa intendi per clonare le resultSet?
Se intendi dire salvarti gli oggetti per non interrogare di nuovo il DB, se sono pochi dati puoi metterli in una lista e poi in sessione, se sono tanti non ti conviene (appesantiscono la memoria).
Tutto sommato, se sono pochi, a recuperarli ogni volta non è che pesa molto...
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2006, 20:31   #11
Corvo80
Member
 
Iscritto dal: Dec 2004
Città: Treviso e Udine
Messaggi: 258
Niente, volevo dire tramite il metodo clone() ma mi sono reso conto che c'è un errore concettuale di fondo: ResultSet non è una classe, è un interfaccia.

Uhmmm... che ne dici di una lista statica, lasciando perdere di copiarla ogni volta nelle variabili sessione? Coi ResultSet aveva un senso, poichè sono provvisti di un puntatore che utilizzavo per la costruzione della riga ma se parliamo di lista posso usare un puntatore per ogni sessione e un'unica lista...
Corvo80 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Nuovi robot aspirapolvere con funzioni t...
Cloudflare taglia un quinto del personal...
Snapdragon 8 Elite Gen 6: poche differen...
Hai una GPU NVIDIA e perdi fino al 10% d...
Una Game Boy Camera del 1998 sul telesco...
La crisi delle memorie è colpa di...
Lexar ARES, SSD da 2TB Gen4 a prezzo ott...
Crisi della RAM: Apple punta su un forni...
DJI Osmo Mobile 7 scende a 58,99€: stabi...
REDMI Buds 8 in prova: il suono che non ...
OPPO aggiorna la sua gamma di auricolari...
Xbox non ha chiuso Ninja Theory e Compul...
Mythos 5, gli USA riaprono parzialmente ...
Le nuove cuffie TWS di OnePlus costano p...
GTA 6, un'edizione fisica con disco potr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v