J'ai une application Java qui rapporte l'état haut/bas de plusieurs sites Web et crée un fichier .json avec les données. J'ai une page HTML qui utilise javascript pour prendre un fichier .json et afficher une belle petite grille avec des lumières rouges ou vertes vous indiquant si un site web est en haut ou en bas. J'ai aucune idée comment faire l'application java dire à la page html exactement ce que le fichier .json est nommé (je crée un nouveau fichier timestamped .json chaque exécution de l'application). Est-il possible de transmettre un paramètre ou quelque chose à la page HTML en cours de chargement (en utilisant actuellement Desktop.getDesktop().browse(URI.create("file://blah");
), ou suis-je obligé d'écraser mon fichier .json chaque fois que je lance l'application?Comment utiliser Java pour lancer une page HTML locale qui utilise Javascript pour charger un fichier json local et afficher son contenu?
Répondre
Comment utiliser un paramètre de requête? Comme file://blah.html?json=foo.json
Ou un fragment: file://blah.html#foo.json
.
J'ai essayé cela mais l'URI ne semble pas le peupler dans le navigateur - je finis avec ma page index.html et aucun params ajouté – ChickenWing
Très étrange. Les deux versions ont fonctionné pour moi quand j'ai essayé, mon navigateur par défaut est Chrome sur OS X. Java 6 sur la même plate-forme. Peut-être spécifique au navigateur? – haraldK
Vous pouvez créer un petit serveur local et enregistrer l'URL/JSON à tout fichier que vous souhaitez:
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
public class main {
static String readFile(String path, Charset encoding) throws IOException {
byte[] encoded = Files.readAllBytes(Paths.get(path));
return new String(encoded, encoding);
}
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new IndexHandler());
server.createContext("/json", new JsonHandler());
server.start();
}
static class IndexHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
String response = readFile("index.html", StandardCharsets.UTF_8);
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
static class JsonHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
String response = readFile("whatEverJsonYouWant.json", StandardCharsets.UTF_8);
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}
Maintenant, la JS peut être changé pour aller chercher/JSON
- 1. Comment sélectionner un fichier et charger son contenu binaire dans une variable locale (JS/HTML)
- 2. Télécharger la page html et son contenu
- 3. Afficher une page html locale avec un fichier javascript séparé dans un onglet
- 4. Comment puis-je provoquer une page HTML locale à enregistrer du texte dans un fichier local?
- 5. Comment utiliser un JavaScript pour charger et analyser un fichier JSON statique dans le serveur
- 6. Lancer un Javascript sur la page Charger
- 7. Comment afficher un fichier html local dans un UIWebView?
- 8. Comment charger un fichier et regarder son contenu?
- 9. Comment charger un fichier local pour un test clojurescript
- 10. Lancer le fichier exécutable local Javascript
- 11. Comment charger et afficher l'image locale Three20
- 12. javascript pour afficher et masquer html
- 13. Rafraîchissant une page pour charger une nouvelle locale
- 14. Lancer un projet Java qui utilise les bibliothèques de jargons
- 15. comment charger un fichier local en utilisant un document html
- 16. Comment utiliser .bat pour créer une galerie d'images .html locale
- 17. Ouvrir un fichier local à partir de la page html + js locale
- 18. Comment charger un fichier .html LOCAL avec une UIWebview?
- 19. jquery page charger pour obtenir un autre contenu de la page, mouseover comment charger une fois
- 20. JAXB: utilise local schemaLocation pour générer des classes Java
- 21. Comment télécharger un fichier .html pour une utilisation locale?
- 22. Comment utiliser javascript pour modifier le contenu HTML?
- 23. Comment obtenir une extension chrome pour charger un iframe contenant une page locale
- 24. Charger une page http à partir d'un fichier local
- 25. Utiliser Javascript pour charger d'autres Javascripts externes
- 26. comment obtenir et utiliser son contenu d'un fichier téléchargé dans un programme java en jsp?
- 27. Comment charger du HTML local avec JavaScript dans Android WebView?
- 28. Devrais-je utiliser Regx, insérer JQuery ou l'analyse HTML sur un WebView pour obtenir son contenu?
- 29. Utiliser javascript pour charger un nouveau segment HTML à l'intérieur de la page
- 30. Obtenir html local dans un autre html local avec JavaScript
Il peut être plus facile que vous le pensez pour que votre application Java affiche une interface utilisateur indiquant l'état des sites Web. Avez-vous besoin que ce soit visible dans un navigateur? –
Il serait préférable, oui - on m'a dit de le faire dans un navigateur, et l'assignateur de projet n'est pas actuellement au bureau. – ChickenWing
Votre programme Java peut-il toujours nommer le dernier fichier comme up-down-status-latest.json et renommer les anciens fichiers en quelque chose d'autre? De cette façon, vous pouvez renommer le fichier et le conserver au lieu de l'écraser à chaque fois. – bsimic