Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package paket;
- import java.io.BufferedReader;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.URLDecoder;
- import java.util.ArrayList;
- public class Server {
- public static final int TCP_PORT = 12313;
- public static final String[] gradovi = {
- "Beograd",
- "Novi Sad",
- "Nis",
- "Zrenjanin"
- };
- public static ArrayList<Klub> klubovi = new ArrayList<Klub>();
- public static void main(String[] args) {
- ServerSocket ss = null;
- try {
- ss = new ServerSocket(TCP_PORT);
- while(true) {
- Socket sock = ss.accept();
- PrintWriter out = new PrintWriter(
- new OutputStreamWriter(sock.getOutputStream()));
- BufferedReader in = new BufferedReader(
- new InputStreamReader(sock.getInputStream()));
- String req = in.readLine();
- String line;
- String useragent;
- line = in.readLine();
- while(!line.contains("User-Agent"))
- {
- line = in.readLine();
- }
- useragent = line;
- String[] httpReq = req.split(" ");
- if(httpReq.length != 3) {
- sock.close();
- continue;
- }
- if(!httpReq[0].equals("GET")) {
- sock.close();
- continue;
- }
- String url = httpReq[1];
- url = URLDecoder.decode(url, "UTF8");
- String[] querryParams = url.split("\\?");
- String route = querryParams[0].substring(1);
- System.out.println(route);
- System.out.println(useragent);
- if(!route.equals(""))
- {
- if(useragent.contains("Trident"))
- {
- out.println("HTTP/1.0 200 OK");
- out.println("Content-Type: text/html; charset=utf-8");
- out.println();
- out.println("<html>\r\n" +
- "<head>\r\n" +
- "</head>\r\n" +
- "<body style=\"color: red\">\r\n" +
- "Aplikacija ne podrzava vas trenutni internet preglednik.\r\n" +
- "</body>\r\n" +
- "</html>");
- out.println();
- out.flush();
- }
- }
- switch(route) {
- case "":
- httpHomePage(out);
- break;
- case "dodajKlub":
- System.out.println("igraj i pobedi");
- httpDodajKlub(out, querryParams[1].split("&"));
- break;
- case "vodeci":
- httpVodeciKlub(out);
- break;
- case "upisBodova":
- upisBodova(out, querryParams[1].split("&"));
- break;
- case "izmenaUpit":
- httpIzmenaKluba(out, querryParams[1].split("&"));
- break;
- case "izmena":
- izmeni(out, querryParams[1].split("&"));
- break;
- default:
- httpNotFound(out);
- break;
- }
- sock.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(ss != null)
- {
- try {
- ss.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public static void httpNotFound(PrintWriter out) {
- out.println("HTTP/1.0 404 Not Found");
- out.println("Content-Type: text");
- out.println();
- out.println("Not valid argument.");
- out.println();
- out.flush();
- }
- public static void httpHomePage(PrintWriter out) {
- BufferedReader in = null;
- try {
- in = new BufferedReader(new FileReader("html/registracija.html"));
- String str;
- out.println("HTTP/1.0 200 OK");
- out.println("Content-Type: text/html; charset=utf-8");
- out.println();
- while((str = in.readLine()) != null)
- out.println(str);
- out.println();
- out.flush();
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void upisBodova(PrintWriter out, String[] args) {
- int klubInd = Integer.parseInt(args[0].split("=")[1]);
- int bodovi = Integer.parseInt(args[1].split("=")[1]);
- klubovi.get(klubInd).setBrojBodova(bodovi);
- httpKlubovi(out);
- }
- public static void httpIzmenaKluba(PrintWriter out, String[] args) {
- int ind = Integer.parseInt(args[0].split("=")[1]);
- Klub klub = klubovi.get(ind);
- out.println("HTTP/1.0 200 OK");
- out.println("Content-Type: text/html; charset=utf-8");
- out.println("");
- out.println(""
- + "<html><body>"
- + "<h1 style=\"color: green\">Izmena podataka</h1>"
- + "<form method=\"GET\" action=\"http://127.0.0.1:" + TCP_PORT + "/izmena\">"
- + "<input type=\"hidden\" name=\"ind\" value=\"" + ind + "\" ><table>"
- + "<tr><td>Naziv</td><td><input type=\"text\" name=\"naziv\" value=\"" + klub.getNaziv() + "\"></td></tr>"
- + "<tr><td>Grad</td><td><select name=\"grad\">");
- for(String grad : gradovi) {
- out.println("<option value=\"" + grad + "\" ");
- if(klub.getGrad().equals(grad))
- out.println(" selected ");
- out.println(">" + grad + "</option>");
- }
- out.println("</select></td></tr>");
- out.println("<tr><td>Aktivan</td><td><input name=\"aktivan\" type=\"checkbox\" ");
- if(klub.isAktivan())
- out.println("checked");
- out.println("></td></tr><tr><td></td><td><input type=\"submit\" value=\"Izmeni\"></td></tr></table></form></body></html>");
- out.flush();
- }
- public static void izmeni(PrintWriter out, String[] args) {
- int ind = Integer.parseInt(args[0].split("=")[1]);
- String naziv = args[1].split("=")[1];
- String grad = args[2].split("=")[1];
- boolean aktivan = false;
- if(args.length == 4)
- aktivan = true;
- klubovi.get(ind).setAktivan(aktivan);
- klubovi.get(ind).setGrad(grad);
- klubovi.get(ind).setNaziv(naziv);
- httpKlubovi(out);
- }
- public static void httpDodajKlub(PrintWriter out, String[] args) {
- String naziv;
- String grad;
- boolean aktivan;
- if(args.length == 3)
- aktivan = true;
- else
- aktivan = false;
- naziv = args[0].split("=")[1];
- grad = args[1].split("=")[1];
- klubovi.add(new Klub(naziv, grad, aktivan));
- System.out.println("ispisi");
- httpKlubovi(out);
- }
- public static void httpVodeciKlub(PrintWriter out) {
- int bodovi = 0;
- String vodeci = "";
- for(Klub k : klubovi) {
- if(k.getBrojBodova() > bodovi)
- {
- bodovi = k.getBrojBodova();
- vodeci = k.getNaziv() + " " + k.getGrad();
- }
- }
- out.println("HTTP/1.0 200 OK");
- out.println("Content-Type: text/html; charset=utf-8");
- out.println();
- out.println("<html><body>Trenutno vodeci klub: <b>" + vodeci + "</b></body></html>");
- out.flush();
- }
- public static void httpKlubovi(PrintWriter out) {
- out.println("HTTP/1.0 200 OK");
- out.println("Content-Type: text/html; charset=utf-8");
- out.println("");
- /*out.println("<html><body>Test</body></html>");
- out.flush();*/
- out.println("<html>\r\n" +
- "<head>\r\n" +
- " <title>Klubovi</title>\r\n" +
- "</head>\r\n" +
- "<body>\r\n" +
- "<h1 style=\"color: blue\">Tabela</h1>\r\n" +
- "<table border=\"1\">\r\n" +
- " <tr>\r\n" +
- " <th>#</th>\r\n" +
- " <th>Klub</th>\r\n" +
- " <th>Bodovi</th>\r\n" +
- " <th>Akcije</th>\r\n" +
- " </tr>");
- int br = 1;
- for(Klub k : klubovi) {
- out.println("<tr><td>" + br + "</td>"
- + "<td>" + k.getNaziv() + " " + k.getGrad() + "</td>"
- + "<td>" + k.getBrojBodova() + "</td>"
- + "<td><a href=\"http://127.0.0.1:" + TCP_PORT + "/izmenaUpit?ind=" + (br-1) +"\">Izmena podataka</td></tr>");
- br++;
- }
- out.println("</table>");
- out.println("<a href=\"http://127.0.0.1:" + TCP_PORT + "\">Dodaj novi klub</a>");
- out.println("<a href=\"http://127.0.0.1:" + TCP_PORT + "/vodeci\">Prikazi vodeci klub</a>");
- out.println("<h1 style=\"color: blue\">Upis bodova</h1>");
- out.println("<form method=\"GET\" action=\"http://127.0.0.1:"+ TCP_PORT + "/upisBodova\"><table><tr><td>Klub</td><td><select name=\"klubovi\">");
- br = 0;
- for(Klub k : klubovi) {
- out.println("<option value=\"" + br++ + "\">" + k.getNaziv() + " "
- + k.getGrad() + "</option>");
- }
- out.println("</select></td></tr>");
- out.println("<tr><td>Bodovi</td><td><input type=\"text\" name=\"bodovi\" required></td></tr>");
- out.println("<tr><td></td><td><input type=\"submit\"></td></tr></table>");
- out.println("</form></body></html>");
- out.println();
- out.flush();
- }
- }
- /*
- <html>
- <head>
- <title>Registracija</title>
- <style></style>
- </head>
- <body>
- <h1 style="color: red">
- Unos novog kluba
- </h1>
- <form method="GET" action="http://127.0.0.1:12313/dodajKlub">
- <table>
- <tr>
- <td>Naziv</td>
- <td><input type="text" name="naziv" required></td>
- </tr>
- <tr>
- <td>Grad</td>
- <td>
- <select name="grad">
- <option value="Beograd">Beograd</option>
- <option value="Novi Sad">Novi Sad</option>
- <option value="Nis">Nis</option>
- <option value="Zrenjanin">Zrenjanin</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>Aktivan</td>
- <td><input type="checkbox" name="aktivan"></td>
- </tr>
- <tr>
- <td></td>
- <td><input type="submit" value="submit"></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement