Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Comunicazione pagina locale HTML a server Java

    Vorrei chiedervi, se fosse possibile, implementare una soluzione del genere.
    Abbiamo una struttura così definita:
    1) Pagina HTML memorizzata in locale
    2) Applicazione "server" in Java SE
    3) Non ci sono elementi come Apache, Tomcat, eccetera
    Pensavo di fare comunicare le parti (1) e (2) attraverso JSON, più nello specifico:
    1) La pagina HTML memorizzata in locale invia dei dati in formato JSON (dato1, dato2, dato3)
    2) L'applicazione "server" (in Java SE) riceve i dati (dato1, dato2, dato3), fa delle elaborazioni e creare un risultato (rix1, rix2)
    3) La pagina HTML memorizzata in locale visualizza il risultato (rix1, rix2).
    E' possibile realizzare un sistema del genere?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Curiosone90 Visualizza il messaggio
    E' possibile realizzare un sistema del genere?
    Sì ma con una precisazione che non hai fatto: la comunicazione con quale protocollo di comunicazione? Perché se è una pagina HTML, verrà presumibilmente aperta con un browser e i browser fanno richieste ai server su HTTP. Al limite, con i browser "moderni" (e con il dovuto supporto del server) è possibile la comunicazione tramite websocket.

    Il fatto che "Non ci sono elementi come Apache, Tomcat" vuol semplicemente dire che non c'è un application server su cui appoggiarsi e in sostanza vuol dire che la applicazione standalone Java SE dovrà "esporre" un server HTTP "embedded", incorporato. Ci sono diversi modi per farlo.

    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sì ma con una precisazione che non hai fatto: la comunicazione con quale protocollo di comunicazione? Perché se è una pagina HTML, verrà presumibilmente aperta con un browser e i browser fanno richieste ai server su HTTP. Al limite, con i browser "moderni" (e con il dovuto supporto del server) è possibile la comunicazione tramite websocket.

    Il fatto che "Non ci sono elementi come Apache, Tomcat" vuol semplicemente dire che non c'è un application server su cui appoggiarsi e in sostanza vuol dire che la applicazione standalone Java SE dovrà "esporre" un server HTTP "embedded", incorporato. Ci sono diversi modi per farlo.

    Tutto qui.
    Grazie! Mi hai schiarito qualche dubbio che, inconsciamente, avevo ancora!
    Allora, prendendo le tue considerazioni, pensavo di implementare una cosa del genere:
    1) le solite pagine web memorizzate in locale
    2) un server HTTP embedded incorportato (in Java SE), prendendo spunto da questo codice: http://www.java2s.com/Code/Java/Netw...eWebServer.htm

    La mia domanda sorge spontanea: se realizzo un webserver in java (vedi punto 2), non realizzo una CGI, con tutti i problemi derivanti? Quindi all'aumentare di utenti collegati ho un grande sforzo della CPU e delle risorse in loco?

    Ancora una volta grazie mille per l'aiuto! :-)

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Curiosone90 Visualizza il messaggio
    1) le solite pagine web memorizzate in locale
    Ok ma scusa ... perché "in locale"? Le pagine non le può servire il server HTTP??

    Quote Originariamente inviata da Curiosone90 Visualizza il messaggio
    2) un server HTTP embedded incorportato (in Java SE), prendendo spunto da questo codice: http://www.java2s.com/Code/Java/Netw...eWebServer.htm
    No, quella è sostanzialmente una "schifezza". E' solo l'esempio super-ultra basilare per fare "vedere" che una applicazione Java può rispondere ad una richiesta HTTP. Ma se operi direttamente a livello di socket ti esponi ad un sacco di "grane" oltre al fatto che DEVI conoscere benissimo tutte le minuzie del protocollo HTTP (e questo potrebbe richiedere settimane, se non mesi, se parti da zero o quasi).

    L'ideale è usare una libreria di "server" HTTP. O incorporare un server come Jetty o Tomcat. Ad esempio tramite Spring Boot (ma questo richiede comunque anche "altre" competenze, cioè su Spring in generale).

    Quote Originariamente inviata da Curiosone90 Visualizza il messaggio
    La mia domanda sorge spontanea: se realizzo un webserver in java (vedi punto 2), non realizzo una CGI, con tutti i problemi derivanti? Quindi all'aumentare di utenti collegati ho un grande sforzo della CPU e delle risorse in loco?
    CGI (Common Gateway Interface) è lo standard che si usa(va) (una volta...) per far sì che un web server potesse lanciare script/eseguibili esterni che "rispondevano" alle richieste ricevendo/inviando i dati tramite i suoi standard input/output. Quindi ogni richiesta creava un processo esterno. Questo E' pesante.

    Tutte le moderne web application, che siano con un "vero" application server, che siano con un server HTTP embedded o altro, sfruttano il multi-threading. Quindi molto più leggero. E quindi NON è un CGI.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Io volevo fare un form in una pagina html e inviarla al server-java-se (che ti ho postato). Quindi, ricevere i dati dalla form e gestirli con un'applicazione web-server sarebbe un lavoraccio, giusto?
    Se sì, mi conviene puntare su Tomcat... Semplificherei molto il lavoro, giusto?

    Grazie mille per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.