Bonjour à tous !
Tout d'abord j'espère que je poste bien dans la bonne section du forum et si ce n'est pas le cas merci de ne pas taper :p
J'aimerais créer un serveur HTTP via Java pour pouvoir afficher des informations en temps réel extraites d'une base de données SQL, et ce par l’intermédiaire de la librairie Javascript Highcharts (qui permet de faire de jolis graphiques).
Après avoir essayé de créer un serveur en Java grâce à SimpleFrameWork, j'ai opté pour HttpServer qui semblait être plus connu et offrait une meilleure documentation sur Internet.
Le code que j'ai est le suivant:
Lorsque j’exécute le programme et me connecte à l'adresse http:127.0.0.1:8000/test la page est bien affichée. Donc de ce côté là ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class HttpServ { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/test", new MyHandler()); server.setExecutor(null); // creates a default executor server.start(); } static class MyHandler implements HttpHandler { public void handle(HttpExchange t) throws IOException { String response = "This is the response : COUCOU !!!"; Headers headers = t.getResponseHeaders(); headers.add("Content-Type", "application/atom+xml"); t.sendResponseHeaders(200, 0); t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } }
Par contre lorsque j'essaye de modifier le champ head, j'ai une page blanche. Et ce champ head j'aimerais pouvoir le modifier car ce dernier doit contenir le code suivant pour pouvoir afficher le graphique Highcharts:
`
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Highcharts Example</title> <script type="text/javascript" src="C:\Users\PC-Voix\Desktop\testJcharts\NEW\Highcharts-4.1.1\examples\pie-basic\jquery-1.11.2.min.js"></script> <style type="text/css"> ${demo.css} </style> <script type="text/javascript"> $(function () { $('#container').highcharts({ chart: { type: 'bar' }, title: { text: 'Utilisation des Liens' }, xAxis: { categories: ['Ethernet', 'GSM', 'T2', 'VHF', 'VLF'] }, yAxis: { min: 0, title: { text: 'Affichage Temps-Reel' } }, legend: { reversed: true }, plotOptions: { series: { stacking: 'normal' } }, colors: ['#2ecc71','#e74c3c','#2c3e50'], series: [{ name: 'Free', data: [5, 3, 4, 7, 2] }, { name: 'Buzzy', data: [2, 2, 3, 2, 1] }, { name: 'HS', data: [3, 4, 4, 2, 5] }] }); }); </script>
Ma question est donc : ''Comment peut-on faire pour modifier le champ Head et insérer ce code Javascript ?'', ou plus simplement comment insérer du Javascript dans HttpServer?
Par avance je vous remercie de l'aide que vous pourrez m'apporter,
Cordialement,
FLIGHT'
Partager