Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.52 KB | None | 0 0
  1. package server;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10.  
  11. /**
  12.  * @author Piotr Kawa
  13.  */
  14.  
  15. public class Server {
  16.  
  17.     private static int portAdress;
  18.     private static String[] firstLine;
  19.     private static Map<String, String> requestMap;
  20.     private static String directory;
  21.     private String response;
  22.  
  23.  
  24.     public Server(int portAdress){
  25.  
  26.         this.portAdress = portAdress;
  27.  
  28.         try{
  29.             this.runServer();
  30.         } catch(IOException e){
  31.             e.printStackTrace();
  32.         }
  33.     }
  34.  
  35.  
  36.     private void runServer() throws IOException {
  37.  
  38.         ServerSocket server = new ServerSocket(portAdress);
  39.         System.out.println("Listening for connection on port 8080 ....");
  40.         requestMap = new HashMap<>();
  41.  
  42.         FileHandler fileHandler = new FileHandler();
  43.         ResponseHandler responseHandler = new ResponseHandler();
  44.  
  45.         while (true) {
  46.  
  47.             try(Socket socket = server.accept()){
  48.  
  49.                 InputStreamReader isr =  new InputStreamReader(socket.getInputStream());
  50.                 BufferedReader reader = new BufferedReader(isr);
  51.                 String line = reader.readLine();
  52.  
  53.                 /*TODO: throws NullPointer*/
  54.                 while (!line.isEmpty()) {
  55.  
  56.                     System.out.println(line);
  57.  
  58.                     if(line.contains("GET")) {
  59.                         firstLine = line.split("\\s+");
  60.                     }
  61.                     line = reader.readLine();
  62.  
  63. //                    else {
  64. //                        String[] lineArray = line.split("([:]?\\s)", 2);
  65. //                        requestMap.put(lineArray[0],lineArray[1]);
  66. //                        line = reader.readLine();
  67. //                    }
  68.  
  69.                 }
  70.                 /**
  71.                  *  1) check whether requested file is valid
  72.                  *  2) check whether requested file exists
  73.                  *  3) prepare proper response
  74.                  * */
  75.  
  76.                 String requestedFile = firstLine[1];
  77.  
  78.                 //OK("200 OK");
  79.                 //NOT_FOUND("404 Not Found");
  80.                 //BAD_REQUEST("400 Bad Request");
  81.  
  82. //                String output = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
  83. //                StringBuilder abc = new StringBuilder(output);
  84. //                String body = "<html>test</html>";
  85. //                abc.append(body);
  86. //                String response = abc.toString();
  87. //
  88.  
  89. //                if requested file is valid and server contains file
  90.                 if(fileHandler.validateRequestedFile(requestedFile)){
  91.                     System.out.println("correct request");
  92.                     System.out.println("requesting file " + "'" + requestedFile + "'");
  93.                     try{
  94.                         if(fileHandler.serverContainsFile(requestedFile)){
  95.                             //all worked well
  96.  
  97.                             String pathToFile = fileHandler.getRequestedFilePath();
  98.                             System.out.println("path to file = " + pathToFile);
  99.                             response = responseHandler.prepareResponse(pathToFile,"positive");
  100.                             System.out.println("all ok");
  101.  
  102.                         } else {
  103.                             response = responseHandler.prepareResponse(null,"error404");
  104.                             System.out.println("404 file not found");
  105.                             //return 404 not found
  106.                         }
  107.                     } catch(Exception e){
  108.                         e.printStackTrace();
  109.                     }
  110.                 } else {
  111.                     response = responseHandler.prepareResponse(null,"error400");
  112.                     System.out.println("400 bad request");
  113.                     //return 400 bad request
  114.                 }
  115.  
  116.                 socket.getOutputStream().write(response.getBytes("UTF-8"));
  117.  
  118.  
  119.                 //            for(Map.Entry<String, String> entry : requestMap.entrySet()){
  120.                 //                System.out.println(entry.getKey() + " vs " + entry.getValue());
  121.                 //            }
  122.                 //
  123.                 //            System.out.println();
  124.                 //            System.out.println(firstLine[1]);
  125.             } catch(Exception e){
  126.                 e.printStackTrace();
  127.             }
  128.         }
  129.     }
  130.  
  131.  
  132.     private void splitMessage(){
  133.  
  134.  
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement