Advertisement
MikecIT

moj

Nov 25th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.16 KB | None | 0 0
  1. package paket;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.io.OutputStreamWriter;
  9. import java.io.PrintWriter;
  10. import java.net.ServerSocket;
  11. import java.net.Socket;
  12. import java.net.URLDecoder;
  13. import java.util.ArrayList;
  14.  
  15. public class Server {
  16.    
  17.     public static final int TCP_PORT = 12313;
  18.     public static final String[] gradovi = {
  19.             "Beograd",
  20.             "Novi Sad",
  21.             "Nis",
  22.             "Zrenjanin"
  23.     };
  24.     public static ArrayList<Klub> klubovi = new ArrayList<Klub>();
  25.  
  26.     public static void main(String[] args) {
  27.         ServerSocket ss = null;
  28.         try {
  29.             ss = new ServerSocket(TCP_PORT);
  30.            
  31.             while(true) {
  32.                 Socket sock = ss.accept();
  33.                 PrintWriter out = new PrintWriter(
  34.                         new OutputStreamWriter(sock.getOutputStream()));
  35.                 BufferedReader in = new BufferedReader(
  36.                         new InputStreamReader(sock.getInputStream()));
  37.                    
  38.                 String req = in.readLine();
  39.                 String line;
  40.                 String useragent;
  41.                 line = in.readLine();
  42.                 while(!line.contains("User-Agent"))
  43.                 {
  44.                     line = in.readLine();
  45.                 }
  46.                 useragent = line;
  47.                 String[] httpReq = req.split(" ");
  48.                
  49.                 if(httpReq.length != 3) {
  50.                     sock.close();
  51.                     continue;
  52.                 }
  53.                
  54.                 if(!httpReq[0].equals("GET")) {
  55.                     sock.close();
  56.                     continue;
  57.                 }
  58.                
  59.                 String url = httpReq[1];
  60.                 url = URLDecoder.decode(url, "UTF8");
  61.                 String[] querryParams = url.split("\\?");
  62.                
  63.                 String route = querryParams[0].substring(1);
  64.                
  65.                 System.out.println(route);
  66.                 System.out.println(useragent);
  67.                 if(!route.equals(""))
  68.                 {
  69.                     if(useragent.contains("Trident"))
  70.                     {
  71.                         out.println("HTTP/1.0 200 OK");
  72.                         out.println("Content-Type: text/html; charset=utf-8");
  73.                         out.println();
  74.                         out.println("<html>\r\n" +
  75.                                 "<head>\r\n" +
  76.                                 "</head>\r\n" +
  77.                                 "<body style=\"color: red\">\r\n" +
  78.                                 "Aplikacija ne podrzava vas trenutni internet preglednik.\r\n" +
  79.                                 "</body>\r\n" +
  80.                                 "</html>");
  81.                         out.println();
  82.                         out.flush();
  83.                     }
  84.                 }
  85.                
  86.                
  87.                 switch(route) {
  88.                
  89.                 case "":
  90.                     httpHomePage(out);
  91.                     break;
  92.                 case "dodajKlub":
  93.                     System.out.println("igraj i pobedi");
  94.                     httpDodajKlub(out, querryParams[1].split("&"));
  95.                     break;
  96.                 case "vodeci":
  97.                     httpVodeciKlub(out);
  98.                     break;
  99.                 case "upisBodova":
  100.                     upisBodova(out, querryParams[1].split("&"));
  101.                     break;
  102.                 case "izmenaUpit":
  103.                     httpIzmenaKluba(out, querryParams[1].split("&"));
  104.                     break;
  105.                 case "izmena":
  106.                     izmeni(out, querryParams[1].split("&"));
  107.                     break;
  108.                 default:
  109.                     httpNotFound(out);
  110.                     break;
  111.                 }
  112.                
  113.                 sock.close();
  114.             }
  115.            
  116.         } catch (IOException e) {
  117.             e.printStackTrace();
  118.         } finally {
  119.             if(ss != null)
  120.             {
  121.                 try {
  122.                     ss.close();
  123.                 } catch (IOException e) {
  124.                     e.printStackTrace();
  125.                 }
  126.             }
  127.         }
  128.  
  129.     }
  130.    
  131.     public static void httpNotFound(PrintWriter out) {
  132.         out.println("HTTP/1.0 404 Not Found");
  133.         out.println("Content-Type: text");
  134.         out.println();
  135.         out.println("Not valid argument.");
  136.         out.println();
  137.         out.flush();
  138.     }
  139.    
  140.     public static void httpHomePage(PrintWriter out) {
  141.         BufferedReader in = null;
  142.         try {
  143.             in = new BufferedReader(new FileReader("html/registracija.html"));
  144.             String str;
  145.             out.println("HTTP/1.0 200 OK");
  146.             out.println("Content-Type: text/html; charset=utf-8");
  147.             out.println();
  148.             while((str = in.readLine()) != null)
  149.                 out.println(str);
  150.             out.println();
  151.             out.flush();
  152.             in.close();
  153.         } catch (IOException e) {
  154.             e.printStackTrace();
  155.         }
  156.     }
  157.    
  158.     public static void upisBodova(PrintWriter out, String[] args) {
  159.         int klubInd = Integer.parseInt(args[0].split("=")[1]);
  160.         int bodovi = Integer.parseInt(args[1].split("=")[1]);
  161.        
  162.         klubovi.get(klubInd).setBrojBodova(bodovi);
  163.         httpKlubovi(out);
  164.     }
  165.    
  166.     public static void httpIzmenaKluba(PrintWriter out, String[] args) {
  167.         int ind = Integer.parseInt(args[0].split("=")[1]);
  168.         Klub klub = klubovi.get(ind);
  169.        
  170.         out.println("HTTP/1.0 200 OK");
  171.         out.println("Content-Type: text/html; charset=utf-8");
  172.         out.println("");
  173.         out.println(""
  174.                 + "<html><body>"
  175.                 + "<h1 style=\"color: green\">Izmena podataka</h1>"
  176.                 + "<form method=\"GET\" action=\"http://127.0.0.1:" + TCP_PORT + "/izmena\">"
  177.                         + "<input type=\"hidden\" name=\"ind\" value=\"" + ind + "\" ><table>"
  178.                         + "<tr><td>Naziv</td><td><input type=\"text\" name=\"naziv\" value=\"" + klub.getNaziv() + "\"></td></tr>"
  179.                                 + "<tr><td>Grad</td><td><select name=\"grad\">");
  180.         for(String grad : gradovi) {
  181.             out.println("<option value=\"" + grad + "\" ");
  182.             if(klub.getGrad().equals(grad))
  183.                 out.println(" selected ");
  184.             out.println(">" + grad + "</option>");
  185.         }
  186.         out.println("</select></td></tr>");
  187.         out.println("<tr><td>Aktivan</td><td><input name=\"aktivan\" type=\"checkbox\" ");
  188.         if(klub.isAktivan())
  189.             out.println("checked");
  190.         out.println("></td></tr><tr><td></td><td><input type=\"submit\" value=\"Izmeni\"></td></tr></table></form></body></html>");
  191.         out.flush();
  192.     }
  193.    
  194.     public static void izmeni(PrintWriter out, String[] args) {
  195.         int ind = Integer.parseInt(args[0].split("=")[1]);
  196.         String naziv = args[1].split("=")[1];
  197.         String grad = args[2].split("=")[1];
  198.         boolean aktivan = false;
  199.         if(args.length == 4)
  200.             aktivan = true;
  201.         klubovi.get(ind).setAktivan(aktivan);
  202.         klubovi.get(ind).setGrad(grad);
  203.         klubovi.get(ind).setNaziv(naziv);
  204.         httpKlubovi(out);
  205.     }
  206.    
  207.     public static void httpDodajKlub(PrintWriter out, String[] args) {
  208.         String naziv;
  209.         String grad;
  210.         boolean aktivan;
  211.        
  212.         if(args.length == 3)
  213.             aktivan = true;
  214.         else
  215.             aktivan = false;
  216.        
  217.         naziv = args[0].split("=")[1];
  218.         grad = args[1].split("=")[1];
  219.        
  220.         klubovi.add(new Klub(naziv, grad, aktivan));
  221.         System.out.println("ispisi");
  222.         httpKlubovi(out);
  223.     }
  224.    
  225.    
  226.     public static void httpVodeciKlub(PrintWriter out) {
  227.         int bodovi = 0;
  228.         String vodeci = "";
  229.         for(Klub k : klubovi) {
  230.             if(k.getBrojBodova() > bodovi)
  231.             {
  232.                 bodovi = k.getBrojBodova();
  233.                 vodeci = k.getNaziv() + " " + k.getGrad();
  234.             }
  235.         }
  236.         out.println("HTTP/1.0 200 OK");
  237.         out.println("Content-Type: text/html; charset=utf-8");
  238.         out.println();
  239.         out.println("<html><body>Trenutno vodeci klub: <b>" + vodeci + "</b></body></html>");
  240.         out.flush();
  241.     }
  242.    
  243.     public static void httpKlubovi(PrintWriter out) {
  244.         out.println("HTTP/1.0 200 OK");
  245.         out.println("Content-Type: text/html; charset=utf-8");
  246.         out.println("");
  247.         /*out.println("<html><body>Test</body></html>");
  248.         out.flush();*/
  249.         out.println("<html>\r\n" +
  250.                 "<head>\r\n" +
  251.                 "    <title>Klubovi</title>\r\n" +
  252.                 "</head>\r\n" +
  253.                 "<body>\r\n" +
  254.                 "<h1 style=\"color: blue\">Tabela</h1>\r\n" +
  255.                 "<table border=\"1\">\r\n" +
  256.                 "    <tr>\r\n" +
  257.                 "        <th>#</th>\r\n" +
  258.                 "        <th>Klub</th>\r\n" +
  259.                 "        <th>Bodovi</th>\r\n" +
  260.                 "        <th>Akcije</th>\r\n" +
  261.                 "    </tr>");
  262.         int br = 1;
  263.         for(Klub k : klubovi) {
  264.             out.println("<tr><td>" + br + "</td>"
  265.                     + "<td>" + k.getNaziv() + " " + k.getGrad() + "</td>"
  266.                             + "<td>" + k.getBrojBodova() + "</td>"
  267.                                     + "<td><a href=\"http://127.0.0.1:" + TCP_PORT + "/izmenaUpit?ind=" + (br-1) +"\">Izmena podataka</td></tr>");
  268.                                     br++;
  269.         }
  270.         out.println("</table>");
  271.         out.println("<a href=\"http://127.0.0.1:" + TCP_PORT + "\">Dodaj novi klub</a>");
  272.         out.println("<a href=\"http://127.0.0.1:" + TCP_PORT + "/vodeci\">Prikazi vodeci klub</a>");
  273.         out.println("<h1 style=\"color: blue\">Upis bodova</h1>");
  274.         out.println("<form method=\"GET\" action=\"http://127.0.0.1:"+ TCP_PORT + "/upisBodova\"><table><tr><td>Klub</td><td><select name=\"klubovi\">");
  275.         br = 0;
  276.         for(Klub k : klubovi) {
  277.             out.println("<option value=\"" + br++ + "\">" + k.getNaziv() + " "
  278.         + k.getGrad() + "</option>");
  279.         }
  280.         out.println("</select></td></tr>");
  281.         out.println("<tr><td>Bodovi</td><td><input type=\"text\" name=\"bodovi\" required></td></tr>");
  282.         out.println("<tr><td></td><td><input type=\"submit\"></td></tr></table>");
  283.         out.println("</form></body></html>");
  284.         out.println();
  285.         out.flush();
  286.     }
  287. }
  288.  
  289. /*
  290. <html>
  291. <head>
  292.     <title>Registracija</title>  
  293.     <style></style>
  294. </head>
  295. <body>
  296.     <h1 style="color: red">
  297.         Unos novog kluba
  298.     </h1>
  299.  
  300.     <form method="GET" action="http://127.0.0.1:12313/dodajKlub">
  301.     <table>
  302.         <tr>
  303.             <td>Naziv</td>
  304.             <td><input type="text" name="naziv" required></td>
  305.         </tr>
  306.         <tr>
  307.             <td>Grad</td>
  308.             <td>
  309.                 <select name="grad">
  310.                     <option value="Beograd">Beograd</option>
  311.                     <option value="Novi Sad">Novi Sad</option>
  312.                     <option value="Nis">Nis</option>
  313.                     <option value="Zrenjanin">Zrenjanin</option>
  314.                 </select>
  315.             </td>
  316.         </tr>
  317.         <tr>
  318.             <td>Aktivan</td>
  319.             <td><input type="checkbox" name="aktivan"></td>
  320.         </tr>
  321.         <tr>
  322.             <td></td>
  323.             <td><input type="submit" value="submit"></td>
  324.         </tr>
  325.     </table>
  326.     </form>
  327. </body>
  328. </html>
  329. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement