diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 6bc2d83..194cfff 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/fr/istic/pr/serveur/HTTPHandler.java b/src/main/java/fr/istic/pr/serveur/HTTPHandler.java
index f1fcde3..5b7891d 100644
--- a/src/main/java/fr/istic/pr/serveur/HTTPHandler.java
+++ b/src/main/java/fr/istic/pr/serveur/HTTPHandler.java
@@ -19,10 +19,15 @@ public class HTTPHandler implements ClientHandler, Runnable {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// lit l'entête de la requête
- String premiere_ligne=in.readLine();
- //TODO
+ String[] premiere_ligne=in.readLine().split(" ");
+ System.out.println(premiere_ligne.length);
+ System.out.println(premiere_ligne[0] + " " + premiere_ligne[1]);
// Appelle doGet si la méthode est une méthode GET.
- //TODO
+ if (premiere_ligne[0].equals("GET")){
+ doGet(premiere_ligne[1],out);
+ }else{
+ doError(out);
+ }
}catch (IOException e) {
System.out.println(e.getMessage());
} finally {
@@ -34,18 +39,26 @@ public class HTTPHandler implements ClientHandler, Runnable {
}
}
- public void doGet(String pagepath, PrintWriter out) {
+ public void doGet(String pagepath, PrintWriter out) throws IOException {
//Vérifie que le fichier existe
File f = new File("./www/" + pagepath);
+
// si le fichier existe :
if (f.exists() && !f.isDirectory()) {
+
//Ecrit l'en-tête de réponse (Code, Content-type, Connexion, ...)
out.println("HTTP/1.1 200 OK");
out.println("Content-Type: text/html");
+
+ //Ecrit le contenu du fichier si il existe
+ BufferedReader fin = new BufferedReader(new FileReader(f));
+ String line;
+ while ((line = fin.readLine()) != null) {
+ out.println(line);
+ }
out.println("Connection: close");
out.println();
}else{
- //Ecrit le contenu du fichier si il existe
// sinon
// appelle la méthode send404.
send404(out);
@@ -57,6 +70,7 @@ public class HTTPHandler implements ClientHandler, Runnable {
out.println("HTTP/1.1 404 File Not Found");
out.println("Content-Type: text/html");
out.println("Connection: close");
+ out.println("");
}
public void doError(PrintWriter out) {
@@ -64,10 +78,21 @@ public class HTTPHandler implements ClientHandler, Runnable {
out.println("HTTP/1.1 405 Method Not Allowed");
out.println("Content-Type: text/html");
out.println("Connection: close");
+ out.println("");
}
@Override
public void run() {
- this.handle();
+ try {
+ BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+ String message = in.readLine();
+ System.out.println(message);
+ String[] a= message.split(" ");
+ if(a[0].equals("GET")) {
+ doGet("test.html",new PrintWriter(new OutputStreamWriter(socket.getOutputStream())));
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
}
diff --git a/src/main/java/fr/istic/pr/serveur/ServeurHTTP.java b/src/main/java/fr/istic/pr/serveur/ServeurHTTP.java
index 65a513d..27e92b4 100644
--- a/src/main/java/fr/istic/pr/serveur/ServeurHTTP.java
+++ b/src/main/java/fr/istic/pr/serveur/ServeurHTTP.java
@@ -1,5 +1,24 @@
package fr.istic.pr.serveur;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
public class ServeurHTTP {
- //TODO
+ public static void main(String[] args) throws IOException {
+ //Attente sur le port 8080s
+ int portDuServer = 8080;
+ try{
+ ServerSocket serverSocket = new ServerSocket(portDuServer);
+ Executor service = Executors.newFixedThreadPool(4);
+ while(true){
+ Socket socket = serverSocket.accept();
+ service.execute(new HTTPHandler(socket));
+ }
+ }catch(Exception e){
+ System.out.println(e.getMessage());
+ }
+ }
}
diff --git a/src/main/java/fr/istic/pr/serveur/www/test.html b/src/main/java/fr/istic/pr/serveur/www/test.html
new file mode 100644
index 0000000..48632c0
--- /dev/null
+++ b/src/main/java/fr/istic/pr/serveur/www/test.html
@@ -0,0 +1,10 @@
+
+
+
+ Coucou
+
+
+ Cette page est une
+ page toute simple
+
+
\ No newline at end of file